Git 使用方法(mac版)
安装
1.先去官网下载软件并安装到电脑使用流程
网址:git-scm.com/
2.根据自己电脑系统下载对应的软件到本机
-
windows系统
- 网址:git-scm.com/download/wi…
- 双击安装
- 全部使用默认设置
- 通过鼠标右键在任意文件夹,查看是否有Git Base Here 选项
-
Mac系统
- 双击安装(调整安全性设置)
- 终端输入 git —version 确认安装
3.mac不能像win一样鼠标右键直接打开所在文件夹的终端,这里给大家一款软件安装后就有类似的功能了
使用
1.安装完 Git 之后,要做的第一件事就是设置你的用户名和邮件地址。 因为每一个 Git 提交都会使用这些信息
-
配置
- win 打开git bash 输入
- mac 打开终端
-
git config --global user.name 你的用户名 git config --global user.email 你的邮箱地址
- 配置后,输入 git config —list 查看
- 将来想要修改, 可以重新执行一次配置命令覆盖即可
初始化Git 仓库
1.创建新文件夹并在该文件夹打开
1.1 win: git bash
1.2 Mac: 终端
2.输入 git init 得到
-
注意点:
- win 需要设置显示隐藏文件
- mac 快捷键 Command + Shift + . 切换隐藏文件显示
- 默认是隐藏的
Git 基本命令
提交数据
在项目文件夹下打开 git bash(终端)
-
提交数据到暂存区
- git add . (小数点前面有空格)
-
将暂存区文件纪录到版本库
- git commit -m”信息”
切换版本
-
查看历史版本
- git log
- git log –oneline
-
拓展
- 如果觉得代码太多可以使用: clear (清屏)
-
切换历史版本
- git reset —hard 版本号 上面黄色字体就是对应版本号
- 回到过去的版本类似于 哆啦A梦的时光机一样,如果我回到的是cecb89f, 那么812a1b5这个版本就会被划掉
- 查看完成历史: git reflog
Git忽略文件
一般我们总会有些文件无需纳入 Git 的管理,也不希望它们总出现在未跟踪文件列表。 通常都是些自动生成的文件,比如日志文件,或者编译过程中创建的临时文件等。 在这种情况下,我们可以创建一个名为 .gitignore
的文件,列出要忽略的文件的模式。
-
文件
.gitignore
的格式规范如下:- 所有空行或者以
#
开头的行都会被 Git 忽略。 - 可以使用标准的 glob 模式匹配,它会递归地应用在整个工作区中。
- 匹配模式可以以(
/
)开头防止递归。 - 匹配模式可以以(
/
)结尾指定目录。 - 要忽略指定模式以外的文件或目录,可以在模式前加上叹号(
!
)取反。 灰色代表已近被忽略
- 所有空行或者以
查看文件状态
-
语法: git status 命令查看哪些文件处于什么状态
- 红色: 工作区有文件更改
- 绿色: 暂存区有文件更改
- nothing to commit: 没有任何文件更改
Git 分支
使用分支意味着你可以把你的工作从开发主线上分离开来,以免影响开发主线。
注意: Git初始化仓库之后默认使用的分支名是 main(早期是 master),默认分支名不相同,不影响后续操作
-
查看分支
- git branch
-
切换分支
- git checkout 分支名
-
重命名分支
- git branch –m 老分支名 新分支名
-
创建分支
- 创建分支就是创建了一个新的可以移动指针, 默认的指向和原分支一样
- git branch 新分支名
-
合并分支
- git merge 分支名
-
删除分支
- git branch -d 分支名
- 合并分支可以将某个分支上的所有commit,并到当前分支的commit
- 合并完毕之后,可以删除多余分支
-
创建+切换分支
- git checkout -b 新分支名
-
强制删除分支
- git branch -D 分支名
Git分支-冲突
如果你在两个不同的分支中, 对同一个文件的同一个部分进行了不同的修改, Git就没法干净的合并的它们
拓展
git常用忽略配置
.DS_Store
node_modules/
dist/
npm-debug.log*
yarn-debug.log*
yarn-error.log*
package-lock.json
yarn.lock
mock
# Editor directories and files
.idea
.vscode
*.suo
*.ntvs*
*.njsproj
*.sln
git版本回退更多
# 除了找到对应版本号之外, 我们还可以用内置的代号
# 回退到 "最近一次提交" (但是要注意如果你已经回退了, 是回不到未来的, 回到未来需要指定版本号数字字母)
git reset --hard head~0
# 回退到 "上一次提交"
git reset --hard head~1
# 回退到 "上上次提交"
git reset --hard head~2
# 想退多少次, 先用git log --oneline 打印后根据注释信息, 自己数下回退几次 head~后面写几
2.以上命令还有个写法
# 回退到 "上一次提交"
git reset --hard head^
# 回退到 "上上次提交"
git reset --hard head^^
# 如果回退的太远, 一百个往前, 你不能写一百个^吧, 还是写head~个数吧
git版本回退-更优解
eset其实会把未来的丢失掉, 如果推到远程仓库可能会有问题 (看下面情况做吧), 但是其实保证大家维护的同一个项目工程都是最新代码即可
比reset更好用的revert
如果已经有A -> B -> C,想回到B:
方法一:reset到B,丢失C:
A -> B
方法二:再提交一个revert反向修改,变成B:
A -> B -> C -> B
C还在,但是两个B是重复的
看你的需求,也许C就是瞎提交错了(比如把密码提交上去了),必须reset
如果C就是修改,现在又要改回来,将来可能再改成C,那你就revert
远程仓库
1.远程仓库是另外一台服务器上, 可以存储我们版本库的所有记录和存档记录
2.这样当我们电脑坏了, 我们也可以从远程仓库上, 克隆下来一份之前提交的代码到本地继续开发
远程仓库gitee
网址: gitee.com/
1.登录后右上角用户旁边有个 + 号可以创建仓库
2.创建后, 会得到一个远程仓库地址链接, 一般是以.git结尾的地址
-
3.地址分为两种
- HTTPS: 需要输入用户名和密码
- SSH: 需要配置秘钥, 可免密码登录
3.我们可以在本机一次性配置SSH以后免密登录
3.1 ssh秘钥作用
ssh key 的作用:实现本地仓库和 gitee平台 之间免登录的加密数据传输。
ssh key 由两部分组成,分别是:
id_rsa(私钥文件,存放于客户端的电脑中即可)
id_rsa.pub(公钥文件,需要配置到 gitee平台 中)
私钥加密的信息,只能通过公钥解密。公钥加密的信息,只能通过私钥解密。安全性高。
3.2 生成秘钥
win 系统
步骤:
1. 打开 Git Bash
2. 粘贴如下的命令 ssh-keygen -t rsa -C "你注册账号的邮箱"
3. 连续敲击 3 次回车,即可在 C:\Users\用户名文件夹.ssh 目录中生成 id_rsa 和 id_rsa.pub 两个文件
4. 使用 vscode 打开 id_rsa.pub 文件,复制里面的文本内容
5. 粘贴配置到 码云 -> 设置 -> ssh 公钥 中即可
mac 系统
步骤:
1. 在个人用户里面找到.ssh文件夹,再打开终端
2.输入 ls ,查看.ssh下的文件 (一般有两个 id_rsa, id_rsa.pub)
3.查看对应的文件: cat id_rsa.pub
4.复制代码,配置到对应的git仓库
4.在账号设置里面找到安全设置-SSH公钥
4.1把复制的公钥粘贴进去
提交到仓库
1.先给仓库配置个远程仓库的地址,建立仓库之间的链接
-
1.1git remote add 仓库别名 仓库地址
- 创建仓库后点击SSH后面有段后缀带有 .git的地址复制
- 仓库别名: 一般用 origin
- 想要删除这个别名可以使用: git remote origin
-
首次提交使用
- git push –set-upstream origin master
- 简写: git push -u 仓库别名 分支名
- 后续使用: git push 就可以了
克隆
如果你本地没有, 而且如果你是要拿到别人仓库里的代码
git clone 目标远程仓库的 git 地址
git clone 远程仓库的git 地址 -b 分支名 (可以指定他的分支克隆)
git pull 获取最新的代码版本到本地合并使用
//自己是最新版本正常提交
git push
git pull 获取最新的代码版本到本地合并使用
//自己是最新版本正常提交
git push