一、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*