git_1">git使用指南
工作中常用的 Git 命令,这些基本够用了。能够记住命令的话可以使你的工作效率提高一大截,当然使用可视化的代码编译工具操作也可。管他操作是否高大上,适合你的才是最好的!
1. 克隆远程仓库的代码到本地
git clone git@xxx.git
拉取下来默认分支名为 master
。
2. 拉取最新代码更新到本地
- 如果本地代码库没有任何修改,直接使用:
git pull
git commit -m “注释内容”
```
注释内容主要用来描述本次修改内容。
3. 创建本地分支
使用以下命令创建分支:
git checkout -b 分支名
- 如果分支名不存在,则会创建一个新的分支并切换到新建分支;
- 如果分支名存在,则会直接切换到该分支。
4. 在本地分支上进行修改操作,并提交
假如我们在本地名为 master
的分支上进行了修改:
- 使用
git add .
将当前修改添加,也可以使用git add 目标文件名
添加指定文件; - 使用
git status
查看当前状态; - 如果有某些文件在
.gitignore
文件里面被忽略了不让add
,可以使用:
git add -f 目标文件名
进行强制添加;
4. add
完之后,使用:
git commit -m "注释内容"
提交;
5. 提交后,使用:
git log
查看刚刚的提交记录,包括提交时写的注释内容;
6. 如果你做了不止一次修改,不想每次都重新用新的注释内容进行提交,不想要每次都生成一个新的 commit 节点,可以使用:
git commit --amend
将第二次提交结合上一次的提交内容合成一个 commit 节点;
7. 最后,将提交的修改 push 到远端分支上,使用:
it push 远端节点
假如想提交到远端的 master
分支上,使用:
git push origin master
进行不覆盖式的提交。如果想用本地的代码完全覆盖掉远端的分支,使用:
git push -f origin master
强制提交。
5. 删除远端分支
- 删除远端分支:
git push origin --delete 远端分支名
- 删除本地分支:
git branch -d 本地分支名
或者使用强制删除:
git branch -D 本地分支名
git_pull__git_pull_r__86">6. git pull
和 git pull -r
的区别
假设有个场景,A 和 B 都需要 push 代码到 origin
的 master
上,A 和 B 拉取的代码后,新建了自己的分支进行修改,并要提交到 master
上;
此时 A 的修改内容先提交到 origin
上;
那么 B 在提交前需要拉取最新的代码(包含 A 的修改的代码 D),此时 B 有两个选择:
- 如果使用:
git pull origin master
拉取代码,使用 `git log` 查看提交记录,此时可以看到有一个 commit 节点叫 `Merge xxxxxxxxxx…`,这样会形成一个菱形的提交记录;- 如果使用:
```bash
git pull -r origin master
可以避免这种菱形提交,会将 B 的提交 rebase 到最新 master
节点上,此时可能会遇到的问题是,如果 B 的提交和 A 的提交有交集的地方,会引起冲突。如果这种情况,会提示你先解决冲突 conflict
,需要 B 去比较与 A 的提交冲突的地方,解决完冲突之后,add
更新下 B 的修改后,执行:
git rebase --continue
就可以继续 pull -r
的过程;过程中如果觉得有任何操作失误,可以使用:
git rebase --abort
随时停止 pull rebase
的过程,并且分支会回到 rebase
开始前的状态。
7. 将分支 A 的修改提交到分支 B
有时候我们可能需要将分支 A 上做的一些修改直接提交到分支 B 上,先切换到分支 B,提前 git log
看下分支 A 上需要的节点号是多少,使用:
git cherry-pick commit节点号
就可以将在 A 上做的某些改动直接 pick 到 B 上。
8. 修改某次的 commit 内容
有些时候很多个提交节点后,发现某个节点上的修改有问题,希望回退到某个节点进行修改,此时可以使用:
git rebase -i commit节点号
回退到你希望修改的节点的前一个节点处,就可以看到你需要修改的节点。将该节点前的 pick
改成 edit
后保存退出,然后你就可以在这个节点继续进行修改。修改结束后使用:
git commit --amend
进行提交,这个操作会将你当前修改合并到这个 commit 节点之前的修改中,提交后使用:
git rebase --continue
我们就可以成功回到最新的修改节点。
9. 还有一些比较暴力但是很好用的命令
-
git reset --hard commit节点号
这个命令很暴力,但是很快,当你搞不清那些节点的时候,不知道自己提交了什么,想要恢复到你想回去的某次提交的时候可以使用,先用git log
查看一下之前 commit 的节点,找到你想退回到的某个 commit id,复制下来。比如这里我想退回到最初的
origin/master
,其 commit 节点号是d9ab27dc42c753b9a1bb2163221b73f63bd490af
,那么我可以使用:git reset --hard d9ab27dc42c753b9a1bb2163221b73f63bd490af
回到这个节点。
-
有时候会用到:
git push -u origin 分支名
- 使用 `git squash` 将多个 commit 节点进行合并;
- 本地创建分支:
```bash
git checkout -b 分支名
并推至远端分支(不存在):
git push --set-upstream origin 分支名
推送本地分支至远端,并创建远程分支。