Git学习笔记
仓库
- 创建新仓库
进入项目根目录,执行
git init
- 克隆一个新仓库
git clone /path/of/repository
- 克隆一个远程仓库
git clone username@host:/path/of/repository
- 将本地仓库更新到远程仓库的最新变动
git pull
添加与提交
- 添加到暂存区
git add <filename>
git add *
- 提交到HEAD
git commit -m "代码提交信息"
推送到远程仓库
git push origin master
其中master可以是任何分支- 若远程仓库还没有创建,则可以
git remote add origin <server>
分支
- 创建分支(如dev)
git branch dev
- 切换到分支
git checkout dev
或
git switch dev
- 创建并且切换到分支(相当于以上两句合并)
git checkout -b dev
或
git switch -c dev
- 列出所有分支
git branch
当前分支前会有一个星号* - 删除分支
git branch -d dev
如果要丢弃一个没有被合并过的分支,可以通过git branch -D <name>
强行删除。 - 将某个分支(如dev)合并到当前分支(如master)
git merge dev
- 合并分支并且保留原分支
git merge --no-ff -m "some comments" dev
- 将分支推送到远程仓库
git push origin dev
- 分支策略
冲突
若两个分支同时对同样的文件做了不同的修改,则在合并这两个分支时,会产生冲突。
产生冲突需要手动解决冲突。
可以用git status
查看相关信息。
可以用git log --graph
查看分支图。
bug分支
通过临时建立一个分支来修复bug,修复完毕之后在合并到原分支。
- 储存工作区(dev分支)
git stash
- 创建临时分支
git switch -c issue-001
- 切换回原分支,合并bug分支
git switch master
git merge issue-001
- 回到原来储存的工作区
git switch dev
此时用git status
可以看到dev分支是空的,因为被储存起来了。
git stash pop
恢复
此时再用git stash list
便看不到stash里的内容了(因为已经恢复了) - 若是要多次stash,可以恢复到指定stash,用命令
git stash apply stash@{0}
即可。
多人协作
- 当clone一个远程仓库时,git会自动将本地和远程的master分支对应起来,并且远程仓库的名字默认为origin。要查看远程仓库可用
git remote
,或者用git remote -v
显示更多信息。 - 推送分支
git push origin master
git push origin dev
注意,mater分支为主分支,应时刻与远程仓库同步。dev分支为开发分支,也应该实时同步。 - 抓取分支
从远程clone一个仓库后,默认只能看到master分支(可以用git branch
查看)。
如果要创建远程dev分支到本地,则需要
git switch -c dev origin/dev
之后就可以将dev分支推送到远程git push origin dev
- 解决冲突
如果团队成员的提交有冲突,则需要先建立dev与origin/dev之间的链接
git branch --set-upstream-to=origin/dev dev
然后在从origin/dev抓去最新的更新
git pull
最后,解决冲突,提交,再push。
参考资料:
- 下一篇:信息工程学院形势政治课课堂笔记
- 上一篇:由《乌合之众》看新型肺炎