一、常用命令
远程仓库类: git clone/remote/pull/push/rebase/fetch
分支类: git branch/tag/checkout/stash
信息查阅: git status/log/reflog/diff
本地常规操作: git add/commit/rm/merge/reset/revert
git add # 将工作区的修改提交到暂存区
git commit # 将暂存区的修改提交到当前分支
git reset # 回退到某一个版本
git stash # 保存某次修改
git pull # 从远程更新代码
git push # 将本地代码更新到远程分支上
git reflog # 查看历史命令
git status # 查看当前仓库的状态
git log # 查看提交历史
git revert # 回退某个修改
git merge # 合并分支
git rebase # 合并分支(变基)
二、基本流程
Git add <filename>
Git commit -m “commit info”
Git pull
Git push
三、查看提交历史
Git log
Git log --oneline # 每次提交的日志一行显示
四、查看单个文件的修改历史
1、查看单个文件的提交历史
Git log <filename>
2、查看修改历史
Git show <hash> <filename>
五、恢复修改的文件
1、只修改了文件,没有任何git操作
Git checkout -- <filename> #恢复到最后一次提交的改动
Git checkout . #恢复所有文件
2、修改了文件,并提交到暂存区
即编辑之后 git add 但没有git commit,仓库版本也就不会更新和记录
Git reset HEAD # 回退的是当前版本
Git checkout -- <filename>
3、修改了文件,并提交到本地仓库
即git commit
Git reset HEAD^ # 回退到上一个版本
Git checkout -- <filename>
版本回退方式:
1、git reset 版本号 #从暂缓区回退到指定版本(版本号:$ git log --oneline 显示的黄色的字)
2、通过 HEAD 来指定版本
HEAD^ #上一个版本
HEAD^^ #上上一个版本
HEAD~n #第n个版本
4、还原git上文件到某一个版本
1、git log <filename> # 查找要还原版本的hash
例如:
-> git log WebContent/css/account.css 取得被修改记录之前的hash
2、git checkout <hash> <filename>
例如:
-> git checkout cfca49c8d6bd442dc0c805930c93520e5a250023 WebContent/css/account.css
3、git commit -m ‘revert to previous version’
4、git push
六、切换分支
1、查看远程所有分支
Git branch -a
2、新建分支并关联到远程分支
git checkout -b 本地分支名 origin/远程分支名
3、查看本地分支及追踪的分支
Git branch -vv
4、切换分支
git branch #查看当前使用分支
git checkout 分支名 #切换分支
七、更新单个文件
git checkout -m <hash> <filepath>
或者
git checkout -f <filepath>
八、合并分支
** 将 my_branch_test2 合并到 my_branch_test1 上
// 新建一个分支,与指定的远程分支建立追踪关系 (第一次)
git checkout --track origin/my_branch_test1
// 第一次之后直接切换分支
git checkout my_branch_test1
git merge origin/my_branch_test2
git pull
git push
九、保存及恢复工作进度
git stash
保存当前工作进度,将工作区和暂存区恢复到修改之前。
git stash save 'message'
同上,添加保存说明
git stash list
保存工作列表
git stash pop stash@{num}
恢复工作进度到工作区,此命令的stash@{num}是可选项,在多个工作进度中可以选择恢复,不带此项则默认恢复最近的一次进度相当于git stash pop stash@{0}
git stash apply stash@{num}
恢复工作进度到工作区且该工作进度可重复恢复,此命令的stash@{num}是可选项,在多个工作进度中可以选择恢复,不带此项则默认恢复最近的一次进度相当于git stash apply stash@{0}
git stash drop stash@{num}
删除一条保存的工作进度,此命令的stash@{num}是可选项,在多个工作进度中可以选择删除,不带此项则默认删除最近的一次进度相当于git stash drop stash@{0}
git stash clear
删除所有保存的工作进度。
参考:https://www.jianshu.com/p/1e65e938f93c