首页 > 代码库 > Git相关知识
Git相关知识
一些有用的链接:
https://www.git-scm.com/
http://nvie.com/posts/a-successful-git-branching-model/
Git开发模式:
建议至少有一个master和develop分支。master只做版本维护工作,develop用于开发。开发完成且测试通过后合并到master。
常用场景:
- 撤销提交到Remote的commit
如果你推送到remote的commit没有被其他人pull过,那么你可以使用
git reset --hard <commit-hash>
git push -f origin master (假定本地和远程都是对master进行操作)
来撤销之前提交的commit。
但是如果有其他人同步过你的push,那么你可以在本地使用revert来还原你提交的commit,然后生成一个新的commit然后再推送到远端。
注:如果Remote的commit不是非撤销不可,可以选择类似于修正bug的方式继续开发并推送更新的commit。
- 删除Remote上不需要的分支
git push origin :<delete branch>
- 本地回滚
主要的命令:git revert和git reset
git revert 是生成一个新的提交来撤销某次提交,此次提交之前的commit都会被保留,revert操作本身也会被记录。
git reset 是回到某次提交,提交及之前的commit都会被保留,但是此次之后的修改都会被退回到暂存区(视情况而定)。该操作本身不会被记录。
--soft 只有commit被回滚,index及内容不变
--mixed commit和index都被回滚,内容不变
--hard commit和index都被回滚,内容被重置,之后的内容无法找回
可能的问题:
- git status/add中文乱码
情景:
使用git add添加文件或者使用git status查看状态时,中文文件名会显示形如274\232\350\256\256\346\200\273\347\273\223.png 的乱码
解决方案:
git config --global core.quotepath false
参考链接:http://zengrong.net/post/1249.htm
- Adding a new SSH key to the ssh-agent
参考链接:https://help.github.com/articles/adding-a-new-ssh-key-to-the-ssh-agent
Git相关知识