一、前言

实习的时候,组内的大佬让我们去下载公司的代码去看,并且要求使用非master分支(如next分支)进行开发,当时我和另外两个应届的同学都去尝试拉分支,结果发现拉下来的都不next分支,而是master分支,后来通过查找资后知道一种好的直接拉取指定分支的办法,在这里,我想记录下一些重要的地方,不会叙述太多git的知识点。

二、准备工作

  • 1、下载git(windos)工具,配置好邮箱和用户名,并生成你自己的公钥。(密钥生成可见:链接
  • 2、我们在自己的工作目录新建一个文件夹project,用来存放我们的项目。

三、git克隆分支的方式介绍

当你进入到公司的git类网站上,会发现一般提供了两种克隆分支的方式:

  • 1、SSH方式,可以免密登录,git拉取代码和提交分支都可以免密,但是要去git网站上配置SSH Key,添加自己生产的公钥。
  • 2、HTTPS方式:可以不用去git网站上配置SSH Key,但是克隆、提交和拉取分支代码都需要输入用户名和密码,比较麻烦(新手推荐用这个)。

四、如何克隆指定分支?

以next分支为例,git地址为HTTPS方式为例,方便讲解。
1、打开之前建好的project文件夹,右键选择Git Bash Here,弹出git窗口
2、初始化本地仓库:git init
3、关联远程仓库:git remote add origin “HTTPS地址”
在这里插入图片描述
我红色划掉的部分就是HTTPS地址啦,复制下来。
4、拉取指定next分支:git clone -b next “git地址”
上面命令中的-b(branch)就是克隆的时候指定分支。
如果此时你是在git网站上添加了密钥,并且git地址是SSH方式的地址,那么可以直接克隆下来。如果你用的是HTTPS方式,你就需要输入用户名密码进行克隆。

五、如何优雅的在分支上开发?

刚克隆下来的next分支在本地也叫next,通常我们不建议直接在这个分支上开发,而是新建一个分支。
1、git checkout -b next-dev (创建并切换到next-dev分支上)
2、我们可以在next-dev上愉快的写我们的代码,写完后可把代码提交到本地仓库:
(1)、git add . (".“的意思就是保存添加所有修改到暂存区)
(2)、git commit -m “注释” (将暂存区中的修改提交到本地仓库)
3、开发完成后我们可将next-dev分支合并到本地next分支上:
(1)切换到本地next分支:git checkout next (切换分之前,需要先在next-dev上commit更改到本地仓库)
(2)本地next分支更新:git pull origin next (当你合并分支的时候,可能其他同事又提交了新的内容)
(3)在本地next分支上去合并next-dev分支:git merge next-dev。(若分支合并出现冲突,这里推荐使用idea集成git工具在idea中去合并冲突,因为比较方便的就能查看到冲突代码块)
4、提交本地next到远程next: git pull origin next:next (”:“前面的是本地分支的名字,”:"后面的是远程分支的名字)

六、为什么不直接在本地next分支上开发,而另创一个next-dev分支呢?

当你直接在本地next分支上开发时,考虑这样的一个场景:测试或者产品火急火燎的告诉你线上出了一个小bug你需要马上修改掉,这个bug很快就能解决,但是你的本地next分支还处于开发状态(甚至是编译都不能通过的状态,你需要注释你的修改或者再去重新拉一个next分支修改bug(这多慢呀!))。但是当你只是在next-dev分支上开发时,你只需提交当前修改并切换到本地next分支上去修改就行了,修改完后切换next-dev继续开发即可。

七、常用命令

初始化本地仓库:git init
本地仓库关联远程仓库:git remote add origin “git 地址”
查看已关联的仓库:git remote -v
切换关联仓库(如想要从HTTPS方式的关联仓库切换到SSH方式关联的仓库):
(1)、取消关联:git remote remove origin
(2)、重新关联:git remote add origin “git SSH方式的地址”
查看所有的分支:git branch -a
更新分支列表(当你不能查看到完整的分支列表时):git fetch
切换分支:git checkout 分支名
创建分支:git branch 分支名
强制删除分支(可删除当前分支):git branch-D 分支名
非强制删除分支(不可删除当前分支):git branch -d 分支名
创建并切换到新分支:git checkout -b 分支名
克隆远程仓库的项目代码:git clone “远程仓库地址”
克隆远程仓库指定分支的代码:git clone “远程仓库地址”
拉取远程分支:git pull 远程分支
提交变更到本地仓库:git commit -m “修改信息注释”:
将你的分支推到远程仓库:git push origin “本地分支名”:远程分支名
撤销本地commit:
(1)、git log 查看commit_id
(2)、git reset --hard commit_id
查看当前仓库的状态(你修改了哪些,哪些保存到了本地仓库,哪些没有):git status
查看提交历史:git log

八、注意事项

1、提交前先git pull是一个好习惯,更新别人提交的代码,避免冲突。
2、为防止我们的误操作,如不小心按到键盘在配置文件中多加了一个字母。我们可以使用idea中的git compare去查看本地分支与远程分支中的差异,确定都是我们自己的正确修改后再提交。
3、分支切换前需要先commit保存修改到本地仓库,不然切换不会成功,强行切换会导致当前分支被覆盖。
4、在git里面总是有后悔药吃的,所以大胆搞,出错了大不了回滚。

一个操作实例

(1)、拉取代码
提示:安装好git后,定位到存放本地项目代码的很目录下,鼠标右击,点击“git Bash”,即可弹出命令框!!

$ git clone <版本库的网址>

该命令会在本地生成一个目录,与origin的版本库同名,目录下面包含 .git文件(默认是隐藏的),和服务器上master分支的代码(也有可能没有,因为master分支上一般没有权限获取);要注意此时是在master分支上的,可以使用 $ git branch 命令查看! 但是我们是要切dev分支上的代码!

$ git checkout dev

该命令是将本地版本库(local)切换到dev分支(前提 是origin上已存在dev分支),建立local与origin对应分支.此分支可以直接与origin对应分支进行通信。如执行代码的上传(push)和更新(pull)操作. ps(也可以使用 $ git checkout -b dev origin/dev命令代替)

$ git pull

该命令将origin/dev分支上的代码,pull或更新到local/dev 分支上。如果项目有依赖工程,使用$ git clone <版本库的网址>命令下载到本地

$ git checkout – b local

该命令,基于dev分支,创建新分支 local,并切换到 local分支,一定要创建新分支进行开发,决不能基于本地dev分支开发,最后就可以将代码导入开发工具了!此时执行 $ git branch 命令应该可以看到 dev 和local 两个分支。

(2)、代码提交
分析:如果一切正常,我们目前应该是在基于本地dev分支基础上创建的local分支上,前面已经说过,本地只有dev分支才能与服务器dev分支进行通信,执行代码的pull和push操作。那么我们要做的就是 将 local分支上的代码,提交到本地dev分支上,之后切换到dev分支,执行push命令,就ok了!!

提示:定位到项目的根目录(带.git的文件夹下),鼠标右击,点击“git Bash”,弹出命令框!!

$ git status

此命令可以查看当前分支上有哪些文件改动了,建议首先执行一下,查看改动的文件,避免提交不需要提交的文件。如果想恢复改动的文件,执行 $ git checkout — 文件路径/文件名 。

$git add .

改命令将分支上改动的文件(即工作区改动文件),添加到暂存区

$ git commit -m “修改说明”

将暂存区的文件提交到版本库(我的理解这个版本库在这里应该指的是本地dev分支)

$ git checkout dev

切换到本地dev分支

$ git pull

该命令将origin/dev分支上的代码,更新到local/dev 分支上。

$ git checkout local

该命令切换到本地local分支

$ git rebase dev

该命令将 dev分支上的最新代码,合并到 本地local分支上。此时很可能会遇到文件冲突的问题,需要到冲突所在的文件下手动修改,修改好后,执行 $ git add . 执行 $ git rebase –continue,此时应该可以成功合并。

$ git push origin head:refs/for/dev

此命令将本地local分支上修改的代码提交到服务器上。

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐