以Linux为例,Windows平台和linux一样。
前面(2.2.1点击按钮“New project”建立项目)在建立一个新的project的时候出现Command line instructions,下面几乎所有的操作都是围绕着这几条命令。
在第一次使用时需要对Git进行设置
git config --global user.name "yhh"
git config --global user.email "yihuihong@example.cn"
从远程库中克隆一个空的project下来,然后创建新的文件。
git clone git@example.wicp.vip: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到远程仓库中去
我们一般用的是这个命令,将现有工程代码push到远程库中去。
cd existing_folder
git init //创建版本库,后面会有详细介绍(只有第一次操作即可,后面不用操作)
关联仓库(两种push代码方式)
git remote add origin http://example.wicp.vip/example_firmware/test.git /*走http协议(只有第一次操作即可,后面不用操作)*/
git remote add origin git@192.168.0.xx: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到远程仓库中去
没做研究(略)
将本地仓库和远程仓库进行关联,之后才能把内容添加到远程仓库中去。
git remote add origin git@192.168.0.xx:example_firmware/plug-in_framework.git
git remote add origin http://example.wicp.vip/example_firmware/test.git
代码管理,常用的几个命令,其实就是三板斧。
执行命令:
git status
执行命令:
git add .
执行命令:
git commit -m “初次提交”
(太多了就不上图了)
执行命令:
git push -u origin master(第一次执行命令需要加上-u,后面就不需要)
我们这工作中,经常想知道我们在版本库中提交了多少版本,执行命令:
git log
或者命令:
git log --pretty=onelin
其中commit 4b10e619d0b82c574a34b2266ca40ad13b7d5622,是每一个版本的id 通过SHA1计算出来的。
或者命令:
git reflog
执行命令:
git reset --hard HEAD^
其中HEAD是当前版本的指针,^ 表示上一个版本,^^表示上上一个版本。
指令命令:
git reset --hard 57d3f9aa669dc646697064a97810b842a50fe1bc
第一步,执行命令:
git reflog //找到所有版本的commit id
第二步,执行命令:
git reset --hard 4b10e61
平时开发,我们一般是master分支留作发布版本,dev分支做测试开发。
执行一个命令:
git checkout -b dev
这个命令可分解为两步:
git branch dev和git checkout dev
注意:切换dev分支时,需要将master分支中的代码 commit 到版本库中去,否则切换不成功,或者原有的代码将不保存。
执行命令:
git branch
表示现在可以在dev分支上进行开发了,图中绿色字体。
在dev分支上修改代码并提交到版本库中去,然后进入master分支上去执行命令:
git merge dev
执行命令:
git branch -d dev
所谓的冲突,就是多个分支之间不同步,一般我们在修改master分支代码之前,先pull一下代码,不然就会出现下面这种冲突的情况,出现这种情况,我们就需要把git合并失败的文件手动编辑为我们希望的内容,再提交。
第一步:创建并修改一个分支,然后提交。如下:
第二步:切换到master分支,并修改master分支,之后合并dev1分支。
可以看到有合并冲突,同时查看readme.txt
这种情况就是冲突,必须需要手动解决冲突后再提交。删除readme.txt不需要的部分然后再commit上去即可。
执行命令:
git log --graph --pretty=oneline --abbrev-commit
可以查看分支合并的情况,如图。
执行命令:
git clone git@192.168.0.xx:xxx_firmware/test.git
默认情况下就是master分支,如下:git branch
此时B会在dev分支上开发并push代码
然后A也做了修改,同时将代码push到dev分支上去,如下
上面显示推送失败,因为B在最新的提交和A的提交有冲突,解决方法就是先将远程库的代码拉取下来,看下图。
注意:在拉取代码失败的时候,需要指定本地的dev分支和远程库的origin/dev分支的关联。同时查看本地readme.txt分支修改情况,可以发现
这个时候和5.6合并分支的冲突一样。解决之后再提交,最后在push。
Gitlab没push一个版本代码都有一个commit id,我们根据这些commit id 可以给他们打上一个标签,这写标签可以是一个版本号。
默认标签是打在最新提交的commit上的如下:
第一步:
git log --pretty=oneline --abbrev-commit
找到所有master分支上提交版本commit id
第二步:
git tag v0.9 8c1b181
指定commit 打标签
执行命令:
git show v0.9
推送某一个标签:
git push origin v1.0
推送所有标签:
git push origin –tags
此时观察Web端:
这个就是标签。
若标签只存在本地,直接执行命令:
git tag -d v1.0
若标签已经推送到远程,要删除远程标签需要
第一步,先删除本地标签:
git tag -d v1.0
第二步,再删除远程的标签:
git push origin :refs/tags/v1.0
因篇幅问题不能全部显示,请点此查看更多更全内容