一个简单的工作流程
新人小明刚入职,进了某个项目组。熟悉了一段时间后,产品来需求了,需要小明在项目中单独开发一个新功能。那么,从加入项目到完成开发,小明应该怎样使用 Git 呢?
基本流程如下:
- 配置公钥(配置详情请自行搜索);
- 克隆项目到本地;
- 从 master 分支上切个 dev 分支,dev 分支用于协作开发;
- 从 dev 分支上切个新功能分支 feature/learn-git ,此分支用来开发自己的新功能;
(注:根据具体情况,第3步和第4步可合为一步,直接在 master 分支上切个新分支进行开发) - 开发过程中,多使用 commit 和 push 保存代码,出问题了还能回退代码;
- 开发完后,注意 pull 一下,与 master 主分支保持一致,没问题后先自测,然后发到公司的测试服务器上,通知测试姐姐进行测试;
- 测试通过后,准备合并分支,即 merge。可能存在权限问题,这时先将开发好的新功能分支推送到线上,然后在公司的 git 项目托管网站上创建一个 “merge requests”,负责人审核后会自动合并。如果没有权限问题,直接切回到 master 分支,然后 git merge origin feature/learn-git 或者 git merge feature/learn-git, 然后在 git push 。
基本操作
项目克隆到本地后,远程仓库的名称一般默认为 origin ,可以理解为 origin 就代表“远程”的意思。可通过 git remote 查看远程仓库名,结果如有不同,替换以下所有命令中 origin即可。
1. 克隆项目文件—— git clone
加入一个已存在的项目时,执行此命令即可将项目克隆至本地,只需执行一次!
git clone <url>
2. 添加修改文件—— git add
常在后面跟参数 -A ,表示将项目根目录下,除 .gitignore 所匹配文件外,所有修改文件添加至暂存区(类似于缓存)。相当于告诉 git ,这些文件上了我的红名单,你给我盯紧了这些文件的动向。
git add -A
或者,你也可以将指定文件添加到暂存区(过于自由化,不喜欢:-O):
git add <文件路径及全称>
注: git add 和 git commit -m 命令可以合并简写为 git commit -am 。
3. 提交修改内容—— git commit
相当于一个保存操作,把写好的代码放进仓库里面存起来,每次 commit 都会自动产生一条日志,所以最好写上注释,便于协作者和自己查阅。
git commit -m '注释内容'
注:如果想回退版本,可根据日志内容进行操作,可查看下次手记。
4. 拉取远程代码
pull 可以将远程仓库的代码拉取到本地仓库进行比较,并将本地没有的内容合并到本地,与本地冲突的内容会在相应文件中标识出来(这时,你需要手动解决冲突代码!)。其实就一个目的,保持远程同步。
git pull origin <远程分支名>
5. 推送至远程仓库
commit 操作后可以 pull 和 push ,也可以不用。和 pull 一起捍卫远程同步,漫步云端!
git push
注: 所有 commit 的内容都能就行回退版本,所以无须过于担心犯错。
分支的创建、切换、合并、删除
当你新建一个项目时,都会有生成一个名为 master 的默认分支,一般作为项目主分支。你可以基于它任意创建、切换、合并及删除项目分支,不过最好符合工作规范,按要求来做!
1. 创建分支
git branch dev
注: 虽然创建了分支,但并没有切换到这个新建的分支上,需要和 checkout 结合着使用(可简写)。
2. 切换分支
切换分支前,请先确定当前分支是否有提交代码(commit),可执行 git status 查看状态。
git checkout dev
执行完后即从原分支切换到了 dev 分支。
注: 可与 git branch dev 合并命令为 git chekcout -b dev 。
3. 合并分支
合并分支前,请先确保你的分支已经开发完毕,然后谁与谁合,就 merge 谁。
git merge dev
注: 这样只是合并了本地分支,如果想合并远程分支,可执行 git merge origin dev,或者本地合并后推到远程分支上。
4. 删除分支
确定无误或者上线后,即可删除功能分支。
git branch -d dev
注: 删一删,世界就清净了!
辅助命令
查看状态
git status
查看差异
git diff
查看日志
git log
查看远程仓库名
git remote
网友评论