Git-03_gitlab的应用场景

Linux为例,Windows平台和linux一样。
前面(2.2.1点击按钮“New project”建立项目)在建立一个新的project的时候出现Command line instructions,下面几乎所有的操作都是围绕着这几条命令。

Command line instructions

Git global setup

在第一次使用时需要对Git进行设置

git config --global user.name "yhh"
git config --global user.email "[email protected]"

Create a new repository

从远程库中克隆一个空的project下来,然后创建新的文件。

git clone [email protected]:example_firmware/test.git
cd test
touch README.md
git add README.md	        //1.将代码从工作区中添加到版本库暂存区中去
git commit -m "add README"  //2.把暂存区的所有修改提交到master分支上去
git push -u origin master   //3.把分master支上代码push到远程仓库中去 

Existing folder

我们一般用的是这个命令,将现有工程代码push到远程库中去。

cd existing_folder
git init //创建版本库,后面会有详细介绍(只有第一次操作即可,后面不用操作)
 
关联仓库(两种push代码方式)
git remote add origin http://example.wicp.vip/example_firmware/test.git /*走http协议(只有第一次操作即可,后面不用操作)*/
git remote add origin [email protected]:example_firmware/plug-in_framework.git /*走SSH协议 (只有第一次操作即可,后面不用操作)*/
 
git add .                      //1.将代码从工作区中添加到版本库暂存区中去
git commit -m "Initial commit" //2.把暂存区的所有修改提交到master分支上去
git push -u origin master      //3.把分master支上代码push到远程仓库中去

Existing Git repository
没做研究(略)

1.创建版本库
在linux平台相应项目工作目录中执行:git init 之后对应的工作目录中就会生成一个.git文件。这个是用来跟踪库管理版本库的,以后千万不要把这个删除了,不然之前的所有git记录都会被破坏掉。

 

2.关联仓库

将本地仓库和远程仓库进行关联,之后才能把内容添加到远程仓库中去。

SSH方式

git remote add origin [email protected]:example_firmware/plug-in_framework.git  

 HTTP方式

git remote add origin http://example.wicp.vip/example_firmware/test.git

3.代码管理

代码管理,常用的几个命令,其实就是三板斧。

3.1查看代码状态

执行命令:

git status

3.2 添加代码到版本库 

执行命令:

git add .

3.3    将代码添加分支

执行命令:

git commit -m “初次提交”

3.4    将分支代码提交到远程库

执行命令:

git push -u origin master(第一次执行命令需要加上-u,后面就不需要)

4.版本回退 

我们这工作中,经常想知道我们在版本库中提交了多少版本,执行命令:

git log

 

或者命令:

git log --pretty=onelin

 

其中commit 4b10e619d0b82c574a34b2266ca40ad13b7d5622,是每一个版本的id 通过SHA1计算出来的。

或者命令:

git reflog

4.1 代码回退到上一个版本

执行命令:

git reset --hard HEAD^

 其中HEAD是当前版本的指针,^ 表示上一个版本,^^表示上上一个版本。

4.2 代码回退指定版本

指令命令:

git reset --hard 57d3f9aa669dc646697064a97810b842a50fe1bc

 4.3 代码回退最新版本 

第一步,执行命令:

git reflog //找到所有版本的commit id

 

 第二步,执行命令:

git reset --hard 4b10e61

 5.多个分支

平时开发,我们一般是master分支留作发布版本,dev分支做测试开发。

5.1 建立新分支

执行一个命令:

git checkout -b dev

这个命令可分解为两步:

git branch dev和git checkout dev

 注意:切换dev分支时,需要将master分支中的代码 commit 到版本库中去,否则切换不成功,或者原有的代码将不保存。

5.2 查看分支

执行命令:

git branch

表示现在可以在dev分支上进行开发了,图中绿色字体。 

5.3 合并分支

在dev分支上修改代码并提交到版本库中去,然后进入master分支上去执行命令:

git merge dev

5.4 删除分支

执行命令:

git branch -d dev

 5.5 合并分支的冲突
所谓的冲突,就是多个分支之间不同步,一般我们在修改master分支代码之前,先pull一下代码,不然就会出现下面这种冲突的情况,出现这种情况,我们就需要把git合并失败的文件手动编辑为我们希望的内容,再提交。

第一步:创建并修改一个分支,然后提交。如下:

第二步:切换到master分支,并修改master分支,之后合并dev1分支。

可以看到有合并冲突,同时查看readme.txt

这种情况就是冲突,必须需要手动解决冲突后再提交。删除readme.txt不需要的部分然后再commit上去即可。

执行命令:

git log --graph --pretty=oneline --abbrev-commit

 可以查看分支合并的情况,如图。

 5.6 多人协作

多人协作时,大家都会往master和dev分支上推送各自的修改。假设你是A,同时有一个人B在另一台电脑(注意要把SSH Key添加到GitLab)或者同一台电脑的另一个目录下克隆。

执行命令:

git clone [email protected]:xxx_firmware/test.git

默认情况下就是master分支,如下:git branch

此时B会在dev分支上开发并push代码

 然后A也做了修改,同时将代码push到dev分支上去,如下

上面显示推送失败,因为B在最新的提交和A的提交有冲突,解决方法就是先将远程库的代码拉取下来,看下图。

  注意:在拉取代码失败的时候,需要指定本地的dev分支和远程库的origin/dev分支的关联。同时查看本地readme.txt分支修改情况,可以发现

这个时候和5.6合并分支的冲突一样。解决之后再提交,最后在push。

6.标签设定与版本号

 Gitlab没push一个版本代码都有一个commit id,我们根据这些commit id 可以给他们打上一个标签,这写标签可以是一个版本号。

 6.1 默认标签

默认标签是打在最新提交的commit上的如下:

6.2 指定commit id 上打标签 

第一步:

git log --pretty=oneline --abbrev-commit

 找到所有master分支上提交版本commit id

第二步:

git tag v0.9 8c1b181

指定commit 打标签

6.3 查看具体标签具体信息

执行命令:

git show v0.9

6.4 推送标签

推送某一个标签:

git push origin v1.0

推送所有标签:

git push origin –tags

 此时观察Web端:

 这个就是标签。

6.5 删除标签

若标签只存在本地,直接执行命令:

git tag -d v1.0

 若标签已经推送到远程,要删除远程标签需要
第一步,先删除本地标签:

git tag -d v1.0

第二步,再删除远程的标签:

git push origin :refs/tags/v1.0

猜你喜欢

转载自blog.csdn.net/zhangyuexiang123/article/details/121409368