这篇博客是从2017/4/12下午开始记录的.本来想着一次整理出经常用的git命令,和比较常见问题的解决办法,方便大家参考.但这样对我自己来说,记忆不会很深刻,达不到想要的效果.所以,我决定将每天提交代码时遇到的问题记录下来,慢慢积累,印象会更深刻.
git log
:查看提交的历史记录(可拿到commit-id);
git reset --hard commit-id
:将本地代码回退到某个历史版本;
场景:一般都是在项目架子刚搭起来的时候,创建
.gitignore
文件,并写好相应的忽略规则.但有时想不起来,所以导致我们会将一些本要ignore
的文件提交了.那这时该怎么做呢?
1.删除已track
的文件 (git rm + 要忽略的文件
)
2.添加.gitignore
文件
3.git add .
4.提交更新: git commit -m "提交注释"
5.推送到远程仓库: git push [remote]
场景:修改了一些代码用来支持新功能,因为还在进行中所以暂时不想提交代码。 此时发现线上版本出了问题需要在本地查错。这样我需要临时保存修改的文件,然后取出线上版本到工作目录。 这时我们可以这样做:
git stash
:将本地修改的内容暂存起来,
恢复的命令:一是用git stash apply
恢复,但是恢复后,stash
内容并不删除,你需要用git stash drop
来删除;
另一种方式是用git stash pop
,恢复的同时把stash
内容也删了。
git stash list
:用来查看stash
内容。你可以多次stash
,恢复的时候,先查看,然后恢复指定的stash
,用git stash apply stash@{0}
命令。
场景:向staging分支提pr有冲突;
解决方案:基于本地的开发分支再建一个分支,使用git pull
命令拉取staging(piaofang仓库)分支代码,并解决冲突,再向staging
分支提pr。
场景:基于新建的分支pull远程的某个分支(
origin/test
)时,会出现以下情况:
There is no tracking information for the current branch.
Please specify which branch you want to merge with.
See git-pull(1) for details.
git pull <remote> <branch>
If you wish to set tracking information for this branch you can do so with:
git branch --set-upstream-to=<remote>/<branch> test
git pull
失败,原因是没有指定本地test
分支与远程origin/test
分支的链接,根据提示,设置test
和origin/test
的链接:
git branch --set-upstream-to=origin/test test
提示Branch 'dev' set up to track remote branch 'dev' from 'origin'.
此时执行git pull
命令即可成功。
git merge
命令用于合并指定分支到当前分支。
更新中~敬请期待~