本文记录了一些常用 Git 命令行操作的具体使用方式
-
git pull origin
相当于 fetch
+ merge
对应的上游分支
-
git pull origin BRACH
拉取指定分支到当前分支
-
git pull origin --rebase master
让本地分支重新基于远端的 master 分支
-
git push origin
把分支推到远端对应的上游分支
-
git push origin BRANCH
把分支推到远端对应的分支
-
git push --set-upstream origin BRANCH
把分支推到远端对应的分支,并将其设为上游分支(一般第一次提交自己的开发分支需要用到)
-
git push -f origin
把分支强推到远端对应的上游分支(会覆盖远端分支,需要慎用)
-
git push origin -d BRANCH
删除远程分支
-
git branch
列出本地所有分支
-
git branch -a
列出本地和远程分支
-
git branch -m NEW_BRANCH
更新当前分支名
-
git branch -d BRANCH
删除已合并的分支
-
git branch -D BRANCH
强制删除分支(即使未合并)
-
git checkout BRANCH
切到对应分支
-
git checkout -b NEW_BRANCH
创建新分支
-
git checkout -b NEW_BRANCH BRANCH
基于 BRANCH 创建新分支
-
git checkout SHA-1
切换到某个提交,也可以用 HEAD~N(N 为 1, 2, 3…)切到上 N 个提交
-
git checkout SHA-1 /PATH/TO/FILE
把文件还原到相应的提交版本
-
git checkout --theirs /PATH/TO/FILE
有冲突时使用对方的文件版本
-
git checkout --ours /PATH/TO/FILE
有冲突时使用自己的文件版本
-
git checkout -
切换到之前的分支,适合在两个分支频繁切换时使用
-
git commit
把 git add
标识的文件进行提交
-
git commit -a
把修改/删除的文件进行提交(如果有新增的文件,需要使用 git add
添加)
-
git commit -am "MESSAGE"
把修改/删除的文件进行提交并指定注释(适用于临时或简单注释内容)
-
git commit --amend
更新上一次提交,可以加上 -a
或在之前运行 git add
追加更新文件
-
git commit --amend --reset-author
默认的更新提交是不改变作者的,如果需要改变可以明确配置
-
git cherry-pick SHA-1
把某个提交应用到当前分支
-
git diff
当前所有修改到的,没被标识为要提交的文件的更新内容
-
git diff --cache
当前所有修改到的,并被标识为要提交的文件的更新内容
-
git diff /PATH/TO/FILE
指定文件的更新内容,同样可以用 --cache
区分
-
git log
详细显示所有记录
-
git log -n 10
显示最近 10 条记录
-
git log --oneline
简要显示所有记录
-
git log --oneline master ^BRANCH | wc -l
可以计算 BRANCH 和 master 分支相差多少个提交
-
git stash
暂存修改/删除,或已标识为要 commit 的新增的文件
-
git stash -u
暂存修改/删除/新增的文件,即新增文件可以不用 git add
-
git stash pop
把暂存的文件重新放出来
-
git reset
取消对要 commit 的文件的标识(相当于 git add
的撤销)
-
git reset --hard
取消修改/删除或已标识为要 commit 的新增的文件的更新
-
git reset SHA-1
取消从 SHA-1 之后的所有提交,但是保留提交文件的更新
如果只想取消上一次提交,SHA-1 可以设为 HEAD^
-
git reset --hard SHA-1
取消从 SHA-1 之后的所有提交,而且不保留提交文件的更新
-
git merge BRANCH
把 BRANCH 合并到当前分支,尽量不形成合并节点
-
git merge --no-ff BRANCH
把 BRANCH 合并到当前分支,并确保形成合并节点
-
git merge --squash BRANCH
把 BRANCH 和当前分支的变更作为标识为要提交的内容,需要运行 git commit
完成只有一个提交的合并
-
git update-index --assume-unchanged /PATH/TO/FILE
当某个文件被临时修改,但不想提交,也不适合放到 .gitignore
,可以用此命令让 git
不将其识别为已修改
如果这个文件是新增的,就不能用这个命令了,不过可以把文件路径加到 .git/info/exclude
-
git update-index --no-assume-unchanged /PATH/TO/FILE
恢复以上文件的修改识别
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)