写在前面的话
工作中的代码都是用git来进行管理(主要是开源),把遇到的问题略微总结下,以备不时之需。git本身使用命令并不难,难的是按照它的思维来管理代码。
新建仓库:
一种方法是直接clone已经存在的远程仓库,另外一种是本地新建仓库后再添加远程仓库。
-
直接clone:
本地新建文件夹后直接终端输入命令:
git clone ***** -
本地新建:
- 创建文件夹并进入,输入git init 以创建新的 git 仓库
- git remote add [远程库名称代号] git@gitee.com?**.git
(提交的时候注意要把两个不同的项目合并需要使用–allow-unrelated-histories
参考:https://blog.csdn.net/lindexi_gd/article/details/52554159)
本地操纵:
git本地操作熟练掌握几个命令即可,主要学会使用git的分支管理,也是git的一大特色。
- git add 或者是git add . ,告诉git需要增加filename或者./目录下所有文件
- git commit -m “代码提交信息” 告诉git你的改动是什么,记录改动信息(将你的改动已经提交到了HEAD)
- git branch -a 显示所有的分支
- git branch -d [分支名] 删除新的分支
- git checkout -b [分支名称] 新建并切换到该分支
- git status 查看当前分支有哪些修改
- git log 查看当前分支上面的日志信息
- git merge [分支名称] 将其他分支的改变合并到当前分支,合并中经常会遇到冲突,git处理分支冲突:https://morvanzhou.github.io/tutorials/others/git/4-2-merge-conflict/
- git stash 临时修改的代码不想add 和commit提交修改,可以使用stash保存临时修改,等整理完毕再git stash pop删除临时存储。(参考莫烦笔记:https://morvanzhou.github.io/tutorials/others/git/4-4-stash )
- git reset 版本回退,参考:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/0013744142037508cf42e51debf49668810645e02887691000
远程仓库:
将远程云端仓库与本地仓库连接,方便代码备份或者多人协作编程。
- git remote add [远程库名称代号] git@gitee.com?**.git 添加远程仓库与本地仓库的连接
- git fetch origin/master(origin是远库名称代号,master是origin的一个分支) 将远程仓库的最新版本代码拖到本地的的origin/master分支下
- git merge origin/master 合并origin/master分支到当前分支
- git pull origin master 相当与步骤1 和 步骤2的叠加操作
- git push origin dev:master 将本地的dev分支推送到远程库的master分支
常见问题:
- 远程仓库分支master和本地分支master不一样的时候如何处理?
- git fetch origin [远程分支名称]
- git merge origin/[远程分支名称]
- 解决冲突
- git add commit
- git push(不需要再git pull,git pull会报错:non-fast-forward)
- 一个本地库关联多个远程库:
- git remote add [远程库名称代号1] https://gitee.com/feixian15/algorithm_core.git
- git remote add [远程库名称代号2] https://gitee.com/feixian15/algorithm_core.git
- git stash常规使用。 git切换到一个新的分支(假如为test)后,test分支写了一半,这个时候不想提交修改信息,那么可以使用git stash:
- git add . 可能有些新建的文件需要被git追踪 (这一步一定不能少,不然有些文件不能被追踪,该分支的修改会带入其他分支)
- git stash 创建一个临时存储
- git checkout master(切换到master分支处理完其他事情)
- git add.
- git commit -m ‘dsfsdf’
- git checkout test
- git stash pop 将临时存储恢复
笔记参考: