1、查看历史
git log
:查看提交历史,以便确定要回退到哪个版本git reflog
:查看命令历史,以便确定要回到未来的哪个版本
2、分支操作
- 查看分支:
git branch
- 创建分支:
git branch <name>
- 克隆特定分支:
git clone -b 分支名 仓库地址
- 切换分支:
git checkout <name>
- 创建+切换分支:
git checkout -b <name>
- 创建+切换+关联远程分支:
git checkout -b 本地分支名 origin/远程分支名
- 根据特定提交,创建切换分支:
git checkout -b <name> commitId
- 合并某分支到当前分支:
git merge <name>
- 删除分支:
git branch -d <name>
3、关联远程仓库
- 查看关联的远程仓库的名称:
git remote
- 查看关联的远程仓库的详细信息 :
git remote -v
- 添加远程仓库的关联:
git remote add origin <url>
- 删除远程仓库的关联:
git remote remove <name>
- 更新远程仓库的
url
:git remote set-url origin <newurl>
4、推送更新
git push
命令用于将本地分支的更新,推送到远程主机。它的格式与git pull
命令相似。
1 | git push <远程主机名> <本地分支名>:<远程分支名> |
更新远程分支
1 | git push origin master :master |
新建远程分支
1 | git push origin master |
删除远程分支
1 | git push origin :master |
默认当前分支
1 | git push origin |
默认主机名
1 | git push |
默认主机
1 | git push -u origin master |
强行推送
1 | git push --force origin |
推送所有分支
1 | git push --all origin |
5、回退(reset )与反做(revert )
回退
- 回退本地分支:
git reset --hard commit_id
- 强制推送到远程分支:
git push -f
适用场景: 如果想恢复到之前某个提交的版本,且那个版本之后提交的版本都不要了
反做
- 撤销某次提交:
git revert commit_id
- 撤销最近一次提交 :
git revert HEAD
- 撤销最近的N个提交:
git revert HEAD~3
通过创建一个新的版本,这个版本的内容与我们要回退到的目标版本一样,但是HEAD指针是指向这个新生成的版本,而不是目标版本 。
适用场景: 如果我们想恢复之前的某一版本(该版本不是merge类型),但是又想保留该目标版本后面的版本,记录下这整个版本变动流程,就可以用这种方法。
6、忽略已提交文件
1 | # git rm -r --cached 要忽略的文件 |
7、合并多个commit
1 | git rebase -i [startpoint] [endpoint] |
-i(--interactive)
,即弹出交互式的界面让用户编辑完成合并操作[startpoint]
、[endpoint]
则指定了一个前开后闭编辑区间如果不指定
[endpoint]
,则该区间的终点默认是当前分支HEAD
所指向的commit
1 | git rebase -i HEAD~3 |
1 | pick:保留该commit |
8、合并特定commit
1 | git cherry-pick <commit-id> |
注:无论是对单个 commit 进行 cherry-pick ,还是批量处理,注意一定要根据时间线,依照 commit 的先后顺序来处理。