git add之后,想撤销add
git add . //添加所有文件
执行完add后,想撤回add,怎么办?
解决办法
git reset HEAD
git commit之后,想撤销commit
写完代码后,我们一般这样
git commit -m "本功能全部完成"
执行完commit后,想撤回commit,怎么办?
解决办法
git reset --mixed HEAD^
这样就成功的撤销了你的commit
注意,仅仅是撤回commit操作,您写的代码仍然保留。
reset参数说明:
HEAD^的意思是上一个版本,也可以写成HEAD~1
如果你进行了2次commit,想都撤回,可以使用HEAD~2
至于这几个参数:
–mixed
意思是:不删除工作空间改动代码,撤销commit,并且撤销git add . 操作
这个为默认参数,git reset --mixed HEAD^ 和 git reset HEAD^ 效果是一样的。
–soft
不删除工作空间改动代码,撤销commit,不撤销git add .
–hard
删除工作空间改动代码,撤销commit,撤销git add .
注意完成这个操作后,就恢复到了上一次的commit状态。
commit注释写错了,只是想改一下注释
顺便说一下,如果commit注释写错了,只是想改一下注释,只需要:
git commit --amend
此时会进入默认vim编辑器,修改注释完毕后保存就好了。
代码已提交入库,leader审核后发现代码有问题,leadr不abandon代码
修改好代码后,执行git add,然后
git commit –amend –no-edit
最后
git push origin HEAD:refs/for/master
当我们想要对上一次的提交进行修改时,我们可以使用git commit –amend命令。git commit –amend既可以对上次提交的内容进行修改,也可以修改提交说明。
代码已提交入库,leader审核后发现代码有问题,leader 将你提交的所有代码 abandon掉
首先通过git reset …将代码回退到你代码提交之前的版本
然后修改出问题的代码
最后执行add,commit,push
git commit -m "****"
git push origin HEAD:refs/for/master```
git添加空目录
为了保证项目结构完整,要提交空的文件夹 , 但是git默认是忽略空目录的,这时候我们只需要在git 根目录下执行如下命令
find . -type d -empty -exec touch {}/.gitignore \;
就可以上传空的文件夹了,本质上是在空目录里建立了一个.gitignore文件,等文件夹中新建了文件再把它删掉即可。
git add忽略某些文件的方法
对于未入库文件
使用命令:touch .gitignore 创建.gitignore文件
在文件中写入需要忽略的文件(如:*.diff),或者不遵循忽略原则的特例(文件前加“!”)
(注:只对untracked files有效)
对于已入库的文件
使用命令:
git update-index --assume-unchanged FILENAME 路径+文件名
若以后不想忽略该文件的修改,则输入命令:
git update-index --no-assume-unchanged FILENAME
最后可以通过
git status
查看状态中是否有效忽略了。
保存本地的修改,拉取服务器上的最新代码
git status
git stash list
git stash save "save rpc"
git pull
git stash list
git stash pop
git stash用法
(1)git stash save “save message” : 执行存储时,添加备注,方便查找,只有git stash 也要可以的,但查找时不方便识别。
(2)git stash list :查看stash了哪些存储
(3)git stash show :显示做了哪些改动,默认show第一个存储,如果要显示其他存贮,后面加stash@{$num},比如第二个 git stash show stash@{1}
(4)git stash show -p : 显示第一个存储的改动,如果想显示其他存存储,命令:git stash show stash@{$num} -p ,比如第二个:git stash show stash@{1} -p
(5)git stash apply :应用某个存储,但不会把存储从存储列表中删除,默认使用第一个存储,即stash@{0},如果要使用其他个,git stash apply stash@{$num} , 比如第二个:git stash apply stash@{1}
(6)git stash pop :命令恢复之前缓存的工作目录,将缓存堆栈中的对应stash删除,并将对应修改应用到当前的工作目录下,默认为第一个stash,即stash@{0},如果要应用并删除其他stash,命令:git stash pop stash@{$num} ,比如应用并删除第二个:git stash pop stash@{1}
(7)git stash drop stash@{KaTeX parse error: Expected 'EOF', got '}' at position 4: num}̲ :丢弃stash@{num}存储,从列表中删除这个存储
(8)git stash clear :删除所有缓存的stash
git放弃本地某个文件或所有文件的修改
放弃某个文件的修改
使用 “git checkout – <文件>…” 丢弃工作区的改动
git checkout -- apps/domain/metric/service/team_indicator_val.go
放弃本地所有文件的修改
git reset --hard HEAD
网友评论