使用hard值恢复文件对没有被git track到的文件没有用
使用git stash save " commit" 保存备注
使用 git stash,需要注意的是这会将工作区的还原到上一次git pull的状态,虽然当前已经修改的工作区的内容会保存到stash中,但是在不用切换到其他分支时,或者pull时,不要随便使用该命令.
git stash apply or pop 将stash的代码恢复中
git log all 修复HEAD error的问题
git checkout --orphan newbranchname 这个分支还是会将原来的代码复制过去
git reset --merge 解决一些无法merge的文件的问题,当然一些有些文件还是要自己去手动修改的
git add 里面的文件是无法再使用git diff 将代码进行比较的,要使用git reset HEAD 或者git reset HEAD 文件名(暂存区可叫index或者stage中的),
文件放入暂存区,且文件再次修改:分三步:先用 git checkout – 文件名 撤销工作区的改动,再用 git reset <文件名> 撤销 git add 操作(此时更改仍留在工作区),最后执行 git checkout – 文件名 清除工作区的改动
查看远程分支:
已经commit,没有push,想要撤销commit
使用git reset --soft HEAD~个数,个数指的是要回退到哪几个版本,–soft指的是版本回退到那里但是代码依然保留,并且代码仍然在add区,即保留git add 操作
git reset --mixed HEAD 指不删除已改动的代码,撤销commit ,不保留git add操作
git reset --hard HEAD 删除改动的代码,撤销commit,不保留git add
git rebase
使用命令 git rebase -i HEAD~num
然后对特定的commit进行操作
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 fetch origin dev(dev为远程仓库的分支名)
git checkout -b local(本地分支名) origin dev(远程分支名)
将远程分支强行覆盖到另外本地分支上,在本地分支上使用git reset --hard 远程分支
查看改动某一个文件
修改最后一次改动的commit的内容
git commit --amend
这个命令可以直接修改commit log的内容
如果需要提交文件的话,
git格式
忽略file mode的变化:git config core.fileMode false
忽略文件间的换行符不同(常见的是文件中出现^M这个东西):
git config --global core.whitespace cr-at-eol
git cherry-pick hash值
将某个其它分支的提交直接合并到某个分支上
git 文件冲突
- 删除文件,修改相同的文件然后merge过来,都会产生both modified
git restore --staged <文件>
git查看改动某一行文件
git添加缩写
git config --global alias.st status
git只显示某次提交改动的文件名
git show --stat commit_id
git回车符转换
设置core.autocrlf
true
提交的回车符为LF,但是查看代码的回车符为CRLF
$ git config --global core.autocrlf true
input
提交的回车符为LF
$ git config --global core.autocrlf input
false
提交的回车符为CRLF
$ git config --global core.autocrlf false
git branch 重命名
git branch -m 旧分支 新分支
git branch 关联新的远程分支
git branch -u remotes/origin( 远程分支 )
会将当前分支自动绑定到远程分支中,然后可以直接使用git push将当前分支的内容直接推送到远程分支或者git pull拉取远程分支。
git推送本地分支到远程分支
git push origin my_branch