Git—代码管理、提交及冲突解决流程的思考

1 代码管理

  Git不多说,大家都知道这是一个分布式版本控制系统,对开发者而言,可以敏捷高效的进行代码管理及开发,也非常适合多人协作。话不多说,下面就来点干货。

1.1 创建新仓库

  我们在工作区(就是自己的电脑里)创建一个新的文件夹,这个文件夹用来存放远端同步过来的代码库。进入到这个新建的文件夹,执行创建新的仓库的命令:
$ git init

补充:
  差点忘记介绍一下git维护的“树”(3棵):

  1. 工作区: 也就是我们的电脑里的实际文件所在位置,即为工作目录;
  2. 暂存区:Index,暂存的意思就是临时保存我们的改动,类似于缓存;
  3. 版本库:HEAD,这是git的版本库,指向我们最后一次提交的结果。

1.2 克隆仓库(拷贝项目)

$ git clone <repository_address>

举例:gerrit仓库:
git clone "ssh://usera@gerrit.cmss.com:123456xx/Project1/Project1.1"

我们也可以使用git clone <repository_address> <local_dir>命令将仓库拷贝到指定的local_dir目录中。

2 代码提交流程

2.1 远程拉取最新仓库内容

$ git pull

2.2 查看分支

查看本地分支
$ git branch
查看远端分支
$ git branch -a

2.3 切换分支

$ git checkout -b local_branch_name origin/remote_branch_name
其中local_branch_name是本地分支的取名;remote_branch_name是远端分支的名称;

2.4 开发代码

在这个分支上进行代码的开发或者修改;

2.5 代码新增

逐个添加
$ git add file_name
其中file_name为需要提交的代码路径名;

一次性添加
我们也可以一次性全部提交
$ git add -A

2.6 代码提交

基于模板提交
$ git commit
会跳转到之前编辑好的git提交模板,进行模板信息编写并保存;

基于命令行的提交信息
$ git commit -m "code infomation"
其中"code infomation替换为本次提交代码的信息;

2.7 代码拉取合并

一般在代码推送前,我们最好进行一次拉取操作
$ git pull --rebase

这个操作主要是避免,在我们修改代码的同时,其他开发者也在修改代码并提交合并到了同一个分支,此时远端仓库和本地工作目录的基线不一致。如果有冲突,我们就手动去解决这些冲突。

2.8 代码推送

$ git push origin HEAD:refs/for/remote_branch_name" 其中,remote_branch_name`是远端分支的名称;

3 其他常用命令

在使用git时,我们也会使用一些辅助性的命令进行检查或者进行代码管理。

3.1 查看状态

$ git status

3.2 查看日志

$ git log
或者
$ git reflog

4 代码冲突

  一般都是在提交代码前没有进行git pull拉取最新代码引起的,当然,当自己的代码开发完毕后,再次拉取最新代码也有可能和本地代码也冲突。这个时候需要我们去解决这些冲突。
方案一:我们可以通过上述的git pull --rebase去解决冲突,然后重新git addgit commit,最后git push

方案二:我们可以通过git log查看commit-id,找到最近一次提交,然后在通过git reset --soft commit-id跳转到倒数第二次提交的位置,进行代码更改。

posted @ 2020-03-12 17:07  Andya_net  阅读(918)  评论(0编辑  收藏  举报