Git常用指令与场景(协作开发必备)

x33g5p2x  于2022-01-09 转载在 其他  
字(2.9k)|赞(0)|评价(0)|浏览(174)

查阅了一些资料,站在前人的肩膀上,看世界会很美好的。

基础篇:Git和Gitee零基础入门(小白必备!)

一、Git分区

距离上一篇Git文章,已经过去了很长时间了,今天再写一篇,整理最近遇到的一些问题及自己的解决方案。

首先是git分区图:

二、Git协作开发

版本管理系统可以实现自动记录每次文件的改动,大家可以写作编辑,各自编辑的数据清晰可见。

首先master主分支应该是非常稳定的,也就是用来发布新版本,一般情况下不允许在上面干活,干活一般情况下在新建的dev分支上干活,干完后,比如上要发布,或者说dev分支代码稳定后可以合并到主分支master上来。

参考:5分钟入门git模式开发 - 云+社区 - 腾讯云 (tencent.com)

Git是常用的分布式版本管理系统,在企业中常见的开发流程如下:

  1. 项目开始阶段,管理员初始化项目(init),把代码放到暂存区,提交暂存区的代码到本地仓库,将本地仓库的代码推送到远端库,管理员创建对应的远程分支后,开发人员就可以clone下来进行开发操作了;
  2. 基于dev分支创建dev-xxx分支,开始进行普通的常规需求开发,开发完成后,Commit提交代码到本地仓库,如果这个新项目或者功能比较大有多人协同开发,怕会相互影响对方的代码,现从dev-xxx分支创建新分支dev-xxx-user进行开发,前提是dev-xxx分支需要push到线上;
  3. 开发完成后将dev-xxx分支合并到dev分支,然后部署dev到测试环境进行测试,测试过程中有bug的话修复完后同样合并到dev分支。如果是在多人协同开发的情况下先将dev-xxx-user分支合并到dev-xxx,再将dev-xxx合并到dev分支;
  4. 测试完成后,将dev分支合并到master分支,然后进行正式发布。发布完成后删除dev-xxx和dev-xxx-user分支; 如果担心在最后一步合并代码到master时有问题,也可以在测试的时候随时更新到本地master(先checkout master分支到本地),但不要push到线上,本地master 如果一定push到线上的话,这就要保证你的需求未测试发布前,别人不会发master与你相关的文件~

另外,如果是外网BUG或者日常,就可以在master上直接创建分支,修复完成后发布,定时同步dev分支,这样可以提高效率 ~

当然,需要了解更为详细的Git协作开发模式,参考:GitHub Flow & Git Flow 基于Git 的两种协作开发模式 - sloong - 博客园 (cnblogs.com)

三、Git指令与使用场景

事实证明,只要你舍得时间研究,基本学这个很快的,只要在git环境下分别输入命令–help。如:

$ git config --help
$ git branch --help
... ...

git终端支持Linux指令 如:ls,pwd,touch,vi,rm,rm -rf ,等.

1.config

# 1.设置用户名和邮箱
$ git config --global user.name "你的用户名"
$ git config --global user.email "你的邮箱"

# 2.查看config信息
$ git config user.name
$ git config user.email
$ git config --list

2.克隆和更新

# 1.clone (ssh or http)
$ git clone http://xxx/xxx.git
# 2.从master更新
$ git pull origin master

3.分支

# 1.查看本地分支 & 本地和远程分支
$ git branch
$ git branch -a

# 2.新建并进入dev分支
$ git branch dev
$ git checkout dev

# 3.新建并进入dev分支(等价于上面两个指令)
$ git checkout -b dev

# 4.删除test分支
$ git branch -d test

# 5.撤销指定文件在工作区的全部修改
$ git checkout README.md
# 撤销工作区所有修改
$ git checkout .

# 6.合并某分支到当前分支
$ git merge branchName

3.主分支提交

# 1.添加到暂存区
$ git add filename
# 2.提交到本地仓库(提交描述必备)
$ git commit -m "提交描述"
# 3.提交代码到master
$ git push origin master

4.dev分支提交代码到master(下面有文字解释!)

# 1.dev分支代码push到分支仓库(在dev分支下进行terminal操作)
$ git add filename
$ git commit -m "提交描述"
$ git push origin dev

# 2.master主分支合并dev分支(在master分支下进行terminal操作)
$ git merge dev
$ git add filename
$ git commit -m "合并dev代码"
$ git push origin master

# 3.查看分支合并图
$ git log --graph

dev分支提交代码到master 很多初学者会弄混,我说一说特别注意的点:

  1. 保证此时分支要合并的代码块,是唯一与远程仓库中master不同地方。满足以上要求,就要保证本地master分支与远程master一致。
  2. master合并的时候,会执行merge指令,merge指令是去到远程分支仓库获取分支代码,所以要合并的话,就要把分支代码提交到对应的远程分支仓库。
  3. 有冲突的话解决冲突!

5.日志

# 1.查看日志
$ git log
$ git log --oneline

# 2.历史提交
$ git reflog

6.Git合并多个commit

想深入理解merge和rebase的区别:带你理解 Git 中的 Merge 和 Rebase - 云+社区 - 腾讯云 (tencent.com)

# 1.查看日志
$ git log --oneline

# 2.合并最近三个commit
$ git rebase -i HEAD~3
# 指令解释
git rebase -i [commitid]
 	-i --interactive
 	commitid 提交的版本号,本身不参与合并

7.版本回退

需要回退commit或了解学习更多细节,请参看:

  • 指令语法:https://blog.csdn.net/jike11231/article/details/106664046
  • 指令用法:https://www.cnblogs.com/MisterZZL/p/9758026.html
# 1.回退到上一个版本(HEAD代表当前版本,^表示上一个版本,^^表示上两个版本,以此类推)
$ git reset --hard HEAD^

# 2.回退到指定版本(da23是向回退版本号的前四位)
$ git log --oneline
$ git reset --hard da23

参考:https://www.cnblogs.com/smuxiaolei/p/7484678.html

相关文章