一、git安装
1.默认安装
执行命令:yum install git
2.安装指定版本git
先删除刚才已下载的安装包:yum remove git
下载对应版本git:wget https://www.kernel.org/pub/software/scm/git/git-2.8.3.tar.gz
解压对应安装包:tar -zxvf git-2.8.3.tar.gz
进入目录:cd git-2.8.3/
配置git安装路径:./configure prefix=/usr/local/git/
源码的安装一般由3个步骤组成:配置(configure)、编译(make)、安装(make install)。
Configure是一个可执行脚本,它有很多选项,在待安装的源码路径下使用命令./configure –help输出详细的选项列表。
其中–prefix选项是配置安装的路径,如果不配置该选项,安装后可执行文件默认放在/usr /local/bin,库文件默认放在/usr/local/lib,配置文件默认放在/usr/local/etc,其它的资源文件放在/usr /local/share,比较凌乱。
如果配置–prefix,如:
./configure --prefix=/usr/local/test1
可以把所有资源文件放在/usr/local/test的路径中,不会杂乱。
用了—prefix选项的另一个好处是卸载软件或移植软件。当某个安装的软件不再需要时,只须简单的删除该安装目录,就可以把软件卸载得干干净净;移植软件只需拷贝整个目录到另外一个机器即可(相同的操作系统)。
当然要卸载程序,也可以在原来的make目录下用一次make uninstall,但前提是make文件指定过uninstall。
编译并且安装:make && make install
查看git版本号:git --version
git已经安装完毕
二、git使用
1.使用基本命令流程图
2.使用示例
a.创建仓库
git --bare init test -- 若不指定目录test,则默认当前目录为新仓库,当前目录下生产.git文件。这里包含test新文件夹,于是在当前目录新增文件夹test,test文件夹作为仓库,test目录下面生成.git文件。
在初始化远程仓库时最好使用 git --bare init 而不要使用:git init
如果使用了git init初始化,则远程仓库的目录下,也包含work tree,当本地仓库向远程仓库push时, 如果远程仓库正在push的分支上(如果当时不在push的分支,就没有问题), 那么push后的结果不会反应在work tree上, 也即在远程仓库的目录下对应的文件还是之前的内容,必须得使用git reset --hard才能看到push后的内容.
b.clone代码到本地工作空间
git clone user@ip:git路径 -- user为登陆服务器的用户名,ip为服务器ip,git路径为git仓库的路径。
如下:git clone root@服务器ip:/workspace/test,clone下来后,进入test文件夹,发现当前分支为master,这是git仓库创建时的默认分支。
注意:此时需要输入密码为登陆服务器的密码。
c.本地创建分支并且提交到服务器
问题场景:新建git项目或刚为已存在项目创建了git仓库,想用git branch dev创建dev分支或用git checkout -b dev创建并切换到dev分支时报错。
原因:刚创建的git仓库默认的master分支要在第一次commit之后才会真正建立,否则就像你声明了个对象但没初始化一样
初始化仓库:在本地test目录下新增文件提交到服务器(文件提交命令:git add .->git commit -m"文字说明"->git push)
创建新分支develop,git branch为查询当前本地分支,git branch develop为创建develop新分支,git checkout develop为切换分支到develop
上传分支到服务器:git push origin develop
这是本地新建一个其他文件夹other,clone一份仓库git内容,并可以切换到develop分支
d.文件冲突解决
场景:当两个人同时修改了一个文件,一个人已经提交,第二个人再提交时就会发现有冲突,这时候就需要先解决冲突后再提交。
方法1:
git pull 出现冲突后丢弃本地冲突文件修改,采用远程文件覆盖本地文件
git checkout [文件路径] --本地库内容覆盖工作区内容
例:git checkout test/src/main/resources/spring-shiro.xml
git pull重新从服务器更新内容
方法:2:
示例:develop分支上存在文件:冲突文件.txt,用户1修改提交:
用户1修改后更新代码(git pull)出现冲突:
这时候需要先解决冲突才能更新下来,然后提交代码,步骤如下:
先暂存本地修改git stash ,然后git pull 更新代码,这时我们打开文件“冲突文件.txt”,看到是用户1提交的内容
然后执行合并暂存内容命令:git stash pop,查看冲突文件,<<<<<<< Updated upstream为从服务器更新下来的内容,
>>>>>>> Stashed changes为暂存区的内容
接着修改文件内容,留下需要的内容提交即可
方法3:
1.git pull
更新代码,发现
error: Your local changes to the following files would be overwritten by merge:pom.xml
Please commit your changes or stash them before you merge.
这说明你的pom.xml与远程有冲突,你需要先提交本地的修改然后更新。
2.git add pom.xml
git commit -m '冲突解决'
提交本地的pom.xml文件,不进行推送远程
3.git pull
更新代码
Auto-merging pom.xml
CONFLICT (content): Merge conflict in pom.xml
Automatic merge failed; fix conflicts and then commit the result.
更新后你的本地分支上会出现 (develop|MERGING)类似这种标志
4.找到你本地的pom.xml文件,并打开
你会在文件中发现<<<<<<< HEAD ,======= ,>>>>>>> ae9a0f6b7e42fda2ce9b14a21a7a03cfc5344d61
这种标记,<<<<<<< HEAD和=======中间的是你自己的代码, ======= 和>>>>>>>中间的是其他人修改的代码
自己确定保留那一部分代码,最后删除<<<<<<< HEAD ,======= ,>>>>>>>这种标志
5.git add pom.xml
git commit -m '冲突解决结束'
再次将本地的pom.xml文件提交
6.git push
将解决冲突后的文件推送到远程
三、gitLab关联
yum安装
1. 安装并配置必要的依赖关系
//在 CentOS 系统上下面的命令将会打开系统防火墙 HTTP 和 SSH 的访问
sudo yum install curl openssh-server openssh-clients postfix cronie
sudo service postfix start
sudo chkconfig postfix on
sudo lokkit -s http -s ssh
# 若不执行安装有可能遇到这个错误【lokkit: command not found 】
yum -y install lokkit
2. 添加 GitLab 镜像源并安装
curl -sS http://packages.gitlab.com.cn/install/gitlab-ce/script.rpm.sh | sudo bash
sudo yum install gitlab-ce
//如果你不太习惯使用命令管道的方式安装镜像仓库,你可以在这里找到 完整的安装脚本
或者 选择系统对应的安装包 使用下面的命令手动安装
curl -O https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el6/gitlab-ce-9.4.3-ce.0.el6.x86_64.rpm
rpm -ivh gitlab-ce-9.4.3-ce.0.el6.x86_64.rpm
3. 配置并登陆 GitLab
进入配置文件: vi ./etc/gitlab/gitlab.rb
修改文件:在文件中命令模式下使用后面查找命令找到:/external_url 'http://localhost'
将localhost修改为浏览器访问的网址即可
加载配置:sudo gitlab-ctl reconfigure
4. 访问 GitLab
输入http://刚才配置的IP
如果8080端口号已经被占用,则访问会报502,这时候需要修改端口号,如下操作:
# gitlab-ctl stop
# vi /etc/gitlab/gitlab.rb (取消注释并修改端口)
unicorn['port'] = 8801
# gitlab-ctl reconfigure (重新生成配置)
# gitlab-ctl restart
# lsof -i:8081 (查看端口号对应的服务)
5.注册账号登录--自行创建自己的账号
6.创建项目
7.clone项目到本地
git clone http://服务器ip/登陆用户名/myproject.git
clone时输入密码即使用户对应密码
四、git卸载
1.删除git安装包
2.卸载已安装git
<1.>找到git的位置
终端命令:which -a git
<2.>cd进入git所在的目录
终端命令:cd /usr/bin/git(这个是一般的默认位置)
<3.>删除命令
终端命令:sudo rm -rf git*