这是我参与「第三届青训营-后端场」笔记创作活动的第3篇笔记。内容主要涉及Git的常用命令。
介绍
Git是集代码托管、代码智能、代码分析、持续集成、Cloud IDE等功能于一身的分布式代码版本控制管理平台,可以帮助研发高效地开发、管理代码。
学习Git的原因
- 协同工作
业内大多数公司都是基于Git进行代码管理,熟练地使用Git是一个程序员的必备技能。
- 开源社区
参与绝大多数开源代码都需要使用到Git,因为它们大多数都是基于Git维护的。
Git的基本使用
-
Git初始化
- git init
-
Git配置
- git config
-
git config --global user.name "xxx" -
git config --global user.email xxx - git remote
- 查看remote:
git remote -v - 添加remote:
git remote add origin <http/ssh项目地址>
-
推送代码
- git add
- git commit
-
远程同步
-
拉取代码
-
git clone
-
拉取完整的仓库到本地目录,可以指定分支和深度
-
git fetch
- 将远端某些分支的最新代码拉取至本地,不会执行merge操作,如果需要和本地代码合并需要手动操作
-
git pull(远程合并到本地)
-
拉取远端某分支,并且与本地代码合并,操作等同于
git fetch + git merge
-
-
推送代码
-
git push(本地合并到远程)
-
将本地代码同步至远端
-
冲突问题:当本地commit记录和远端的commit历史不一致,则会产生冲突。
-
解决冲突
- 产生原因:两个分支修改了同一个文件或者修改了同一个文件的文件名;两个分支修改了不同文件的部分不会产生冲突,可以直接合并。
- 如果该分支仅仅自己一个人使用,或者与团队成员确认过修改历史,则可以通过
git push origin master -f来完成强制推送。一般不推荐主干分支进行此操作。 - 修改冲突代码后再合并(推荐)
-
推送规则限制
- 可以通过保护分支,来配置一些保护规则,防止误操作,或者一些不合规操作的出现,导致代码异常或者丢失。
-
-
-
Git研发流程
- 从原始分支(一般为master)中拉取代码,并新建feature分支,在此分支中进行开发
- 开发完成后创建一个feature分支到目标分支的Merge Request
- 开发团队内部审核通过后进行Merge操作
Git常用
-
克隆单个分支
- ZIP下载(不推荐)
- git clone --branch dev --single-branch git@code.byted.org:ee/janus.git
-
添加改动过的文件从工作区存至暂存区
- git add readme.txt
-
将暂存区变更提交至当前分支,同时带上message备注
- git commit -m "change message"
-
分支管理
-
查看本地分支
- git branch
-
查看远程分支
- git branch -r
-
查看所有分支
- git branch -a
-
创建分支
- git branch
-
切换分支
- git checkout
-
创建并切换分支
- git checkout -b
-
合并某分支到当前分支
- git merge
-
删除分支
- git branch -d
-
-
初始化本地版本库
- git init
-
提交至远程库
- git push origin dev
-
git上传代码至指定分支
-
切换到分支
- git checkout -b dev
-
将改动的文件提交到索引库(暂存区)
- git add *
-
将暂存区提交至当前分支
- git commit -m "message"
-
上传
- git push origin dev
-
- git add . 和 git add * 区别 git add . 会把本地所有untrack的文件都加入暂存区,并且会根据.gitignore做过滤,但是git add * 会忽略.gitignore把任何文件都加入