GitLab安装与使用

Git是目前世界上最先进的分布式版本控制系统。GitLab是一个利用Ruby on Rails开发的开源应用程序,实现一个自托管的Git项目仓库,可以浏览源代码,管理缺陷和注释。

1.安装git
首先,输入git,检查系统是否安装git
然后,如果没有安装,输入命令

sudo apt-get install git

2.创建版本库(repository)
(1)创建空目录

$ mkdir learngit
$ cd $project_root #进入工程目录
$ pwd #显示当前目录
(2)创建空仓库
$ git init  #初始化git仓库
$ ls -ah #查看隐藏文件
可以发现目录下多了一个.git文件
3.把文件添加到仓库
git add <file> #添加文件到仓库 可反复多次使用,添加多个文件;
git commit -m "init commit" #提交代码到仓库
例如:添加多个文件到仓库
$ git add file1.txt
$ git add file2.txt file3.txt
$ git commit -m "add 3 files."

4.添加到远程库

git remote add origin [email protected]:namespace/projectname.git #连接到git远程库
git push -u origin master #第一次把本地库的所有内容(当前分支master)推送到远程库上,并将本地的master分支和远程的master分支关联起来

以后提交的命令

$ git push origin master

5.从远程库克隆

首先,登陆GitHub,创建一个新的仓库

用命令git clone克隆一个本地库

$ git clone [email protected]:examplename/examplefolder.git
$ cd examplefolder
$ ls
或者使用http协议地址
$ git clone https://github.com/examplename/examplefolder.git
6.版本退回
$ git reset --hard HEAD^

用git status 查看是否有文件被修改过;

用git diff查看修改内容;

用git log查看提交历史,以便确定要回退到哪个版本。

用git reflog查看命令历史,以便确定要回到未来的哪个版本。

7.撤销修改

丢弃工作区的修改

$ git checkout -- readme.txt

把暂存区的修改撤销掉,重新放回工作区

$ git reset HEAD readme.txt
$ git checkout -- readme.txt
8.删除文件 
 

从文件管理器中删除文件

$ rm test.txt
从版本库删除文件
$ git rm test.txt
$ git commit -m "remove test.txt"
把误删的文件恢复到最新版本
$ git checkout -- test.txt

9.创建与合并分支

$ git checkout -b dev #创建并切换到dev分支
$ git branch #查看当前分支
$ git add readme.txt #在dev分支添加并提交文件
$ git commit -m "branch test"

$ git checkout master #切换回主分支master
$ git merge dev #将dev分支的结果合并到主分支master
$ git branch -d dev #删除dev分支
$ git branch #查看当前分支

10.解决冲突

当Git无法自动合并分支时,必须先手动解决冲突(通过vim)。解决冲突后,再提交,合并完成。

如下命令可查看分支合并图

git log --graph

11.临时工作分支

修复bug时,我们会通过创建新的bug分支进行修复,然后合并,最后删除;

当手头工作没有完成时,先把工作现场git stash一下,然后去修复bug,修复后,再git stash pop,回到工作现场。

$ git status
$ git stash #隐藏当前工作现场
$ git status

$ git checkout master #切换到master分支
$ git checkout -b issue-101 #创建新的分支,并在本地修改文件
$ git add readme.txt 
$ git commit -m "fix bug 101"
$ git checkout master #切换到master分支
$ git merge --no-ff -m "merged bug fix 101" issue-101 #合并临时分支issue-101
$ git branch -d issue-101 #删除分支issue-101

$ git checkout dev #切换到dev分支
$ git status
$ git stash list
$ git stash pop #恢复工作现场,并删除stash内容
$ git stash list

$ git stash apply stash@{0} #可以多次stash,恢复指定的stash

12.多人协作

$ git remote -v #查看远程库的信息 会显示出可以抓取和推送的origin地址
  • 推送分支

在git中,分支完全可以在本地自己玩,是否推送,视个人情况而定。

master分支是主分支,要时刻与远程同步;

dev分支是开发分支,也需要与远程同步;

bug分支只用于在本地修复bug,没必要推到远程;

feature分支是否推到远程,取决于你是否和你的小伙伴合作在上面开发。

$ git push origin dev  #把本地dev分支推送到远程库
  • 抓取分支
$ git clone [email protected]:examplename/examplefolder.git
$ git branch #查看分支
$ git checkout -b dev origin/dev #创建远程origin的dev分支到本地

$ git commit -m "add /usr/bin/env"
$ git push origin dev #把dev分支push到远程

$ git add hello.py 
$ git commit -m "add coding: utf-8"
$ git push origin dev 

$ git pull #未指定本地dev分支和远程origin/dev分支的链接 no tracking information
$ git branch --set-upstream dev origin/dev
$ git pull

git pull成功,但是合并有冲突,需要手动解决(通过vim进入文件,手动修改删除),解决后,提交,再push。

$ git commit -m "merge & fix hello.py"
$ git push origin dev


猜你喜欢

转载自blog.csdn.net/u013402321/article/details/79557035