git全局命令
git config --list --show-origin
:查看所有的配置以及它们所在的文件
git config --global core.editor emacs
:修改git的编辑器
基础命令
git pull
:拉去代码
git push
:向仓库推代码,加 -f(force)
强推覆盖远程代码
git add
:
git commit
:
branch相关
查看分支:git branch
查看分支包括远程分支:git branch -a
创建分支:git branch <name>
切换分支:git checkout <name>
或者 git switch <name>
创建+切换分支:git checkout -b <name>
或者 git switch -c <name>
删除分支:git branch -d <name>
删除远程分支:git push origin --delete <branchName>
或者 git push origin :<branchName>
推一个空分支到远程
手动建立追踪关系:git branch --set-upstream master origin/dev
撤销远程分支追踪关系:git branch --unset-upstream
从commit切分支git checkout commitId -b <name>
回退相关
git reset --hard commitId
:回退到某个commit,
--hard
表示丢弃目标commit
到最新commit
;-–soft
所有的commit
的修改都会回退到git缓冲区
git revert commitId
:回退某个commit
,并产生一次新的commit
git reflog
:打印每一次操作记录,后悔操作,可以再次回退
tag相关
注意:标签总是和某个commit挂钩。如果这个commit既出现在master分支,又出现在dev分支,那么在这两个分支上都可以看到这个标签。
查看标签:git tag
创建轻量级标签:git tag v1.0.1
创建含附注的标签:git tag -a v1.0.1 -m '1.0.4版本,增加携机入网,我的费率页面重写'
给某个commit打标签:git tag -a v1.0.1 -m "新的tag" commitId
根据某个tag切分支:git checkout -b version2 v2.0.0
删除标签: git tag -d v1.0.1
推送某个标签到远程:git push origin v1.0.1
推送所有未推送到远程的标签:git push origin --tags
删除远程tag:git push <remote> :refs/tags/<tagname>
或者git push origin --delete <tagname>
merge相关
-
普通
merge
保留所有的
commit
,并且会产生一个merge
的commit
,记录所有的commit
历史 -
squash merge
合并无用的commit,会产生一个未提交的修改,需要再次commit,这样会修改commit的作者
-
rebase merge
直接合并需要的commit,保留原作者
git rebase -i commitId
或者git rebase -i HEAD~3
pick:保留该commit(缩写:p)
reword:保留该commit,但我需要修改该commit的注释(缩写:r)
edit:保留该commit, 但我要停下来修改该提交(不仅仅修改注释)(缩写:e)
squash:将该commit和前一个commit合并(缩写:s)
fixup:将该commit和前一个commit合并,但我不要保留该提交的注释信息(缩写:f)
exec:执行shell命令(缩写:x)
drop:我要丢弃该commit(缩写:d)
git rebase --abort 撤销修改,回到没有开始操作合并之前的状态
remote相关
查看远程仓库:git remote -v
取回远程主机某个分支的更新:git pull <远程主机名> <远程分支名>:<本地分支名>
本地更新推送远程:git push <远程主机名> <本地分支名>:<远程分支名>
如果本地分支名为空,则表示删除远程分支
git fetch <remote>
Log相关
命令后面拼接-2,可以限制显示最近2次提交
git log
:查看commit记录
git log -p(--patch)
:显示每次提交的差异
git log --pretty
:使用其他格式显示提交记录,可跟oneline(单行显示)
、short
、full
、fuller
和format(自定义格式)
git log —graph
:在日志旁一ASCLL图形显示分支和合并历史
stash相关
保存当前进度:git stash
显示保存进度的列表:git stash list
恢复最新的进度到工作区:git stash pop
git commit --amend
cherry-pick
待完善...