查看修改了什么
git status
查看提交了什么
gitk
查看提交的日子
git log 或git log -n(行数)
查看某个文件
cat test.txt
stash暂存
在开发中,突然来个了bug需要修改以前的代码,或者需要切换分支,又不想把新加的代码影响到旧代码
这时候stash暂存就起作用了。
git stash 暂存
//---修bug 完成后提交,
git stash pop 取回暂存
合并上一次的commit
git commit --amend
取消提交的commit
取消上一次提交,被取消的内容不消失回到add之后的状态 soft
git reset --soft head^
取消上一次提交,被取消的内容丢失 hard
git reset --hard head^
回退所有内容到上一个版本
git reset HEAD^
向前回退到第n个版本
git reset –soft HEAD~n
将本地的状态回退到和远程的一样
git reset –hard origin/master
回退到某个版本 (057d 版本号)
git reset 057d
回退到上一次提交的状态,按照某一次的commit完全反向的进行一次commit
git revert HEAD
每次发版本时候,都会打一个版本结束的tag,或者某个公司基于某个id,然后打一个tag标识,这样方便查找,及以后合并代码
添加tag
git tag -a dev1.0.0 -m "1.0.0版本发布"
显示tag
git show dev1.0.0
删除tag
git tag -d dev1.0.0
多次commit,需要修改前面的commit内容 rebase -i
git rebase -i head~n(倒数第n次commit)
修改完成后
git rebase --continue
最后提交修改(这时会把修改的那个commit及它以后的commit都push一次)
git push origin head:refs/for/dev
多分支提交cherry-pick
先按上面步骤操作提交到一个主分支上(如dev),在提交一份到其他分支(如dev1.0.1)上
在本地local分支上gitk查看commit id,记下需要提交部分的id号
gitk
切到dev1.01分支上,并建立一个本地分支br_local
git checkout dev1.0.1
git checkout -b br_local
cherry pick 需要提交的id(bc2b54e8c)
git cherry-pick bc2b54e8c
无错误 push 有错误修改
git push origin HEAD:refs/for/dev6.0.4
找回丢失Commit内容
有时候我们误操作,或者IDE问题使commit的本地代码找不到了,这时不要担心reflog都会帮助我们记录,
简单的说,它会记录所有HEAD的历史,也就是说当你做 reset,checkout等操作的时候,这些操作会被记录在reflog中。
git reflog
看到日志是这样的
> b7057a9 HEAD@{0}: reset: moving to b7057a9
> 98abc5a HEAD@{1}: commit:more stuff added to foo
> b7057a9 HEAD@{2}: commit (initial): initialcommit
所以,我们要找回我们第二commit,只需要做如下操作:
git reset --hard 98abc5a
再来看一下 git 记录:git log
* 98abc5a (HEAD, master) more stuff added to foo
* b7057a9 initial commit
同时本地对foo.txt做的修改也回复回来了。
这些都是平时开发会经常遇到的常见问题,希望对大家有所帮助