Git常見相關知識與命令

安裝git程序

ContOS

         Yum install –y epel-release

         Yum install –y git

Ubuntu

         Sudo apt-get install git

Windows上安裝

         https://git-scm.com/download/win

安裝完成以後還需要最後一步設置

         git config --global user.name "Qiang"//比如Qiang

         git config --global user.email "[email protected]"//寫入到你的郵箱

 

創建版本倉庫並推送文件

Mkdir /home/gitroot   //創建目錄

Cd /home/gitroot     //進入目錄

Git init //用命令初始化。讓這個目錄編程git可以管理的倉庫

Ls –a //可以看到.git目錄

Echo –e “QIANG”>1.txt //創建一個文件1.txt

Git add 1.txt //把1.txt添加到倉庫中

Git commit –m “add new file 1.txt” //add完了必須要conmit纔算真正把文件提交到git倉庫裏

Echo –e “QIANG QIANG”>> 1.txt //更改1.txt

Git status //查看當前倉庫中的狀態,比如是否有改動文件

Git checkout --1.txt//將倉庫中的1.txt覆蓋本地的1.txt

Git diff 1.txt /可以對比1.txt本次修改了什麼內容,相比倉庫裏面的版本

 

刪除文件

1.       git add test.txt

2.       git commit -m "add test.txt"

3.       rm test.txt

4.       git status

5.       git rm test.txt

6.       rm 'test.txt'

7.       git commit -m "remove test.txt"

 

上傳當前目錄下所有文件

1.       git add .

2.       git commit -m "updata all"

3.       git push

 

版本的變更

多次更改1.txt 並進行git add,git commit操作

Git log //可以查看所有提交git倉庫的倉庫記錄操作

Git log –pretty=oneline 一行一行顯示

通過git log可以查看到過去提交的所有版本,所以根據這個log可以指定回退某個版本

Git reset –hard d03da70182c1e78d04df1d7eee2f6a972ae4f82b //可以回退該版本,這裏是長字符串,可以簡寫(前5個字符)

Git reflog //可以顯示所有的版本

 

文件恢復

當修改1.txt 發現修改的不對,想修改上一次提交的狀態

Git checkout –1.txt//恢復到上一次提交的狀態

如果1.txt修改完成,保存後,git add 1.txt了 但是沒有git commit,再想回退到上一次提交是的狀態,可以使用

Git reset HEAD 1.txt

然後再

Git checkout –1.txt

 

文件刪除

Echo “QIANG” >2.txt

Git add 2.txt

Git commit –m “add new file 2.txt”

Rm –f 2.txt

Git status

Git rm 2.txt

Git commit –m “delete 2.txt”//徹底刪除2.txt

 

創建一個遠程的倉庫

1.先註冊一個免費的倉庫https://github.com/或https://git.oschina.net/

2.權限認證,添加key

  github :Setting->SSH and GPG keys->new SSH key->title和key輸入進去

  oschina:個人資料->SSH公鑰->添加公鑰->標題和公鑰輸入進入

  生成密鑰對:ssh-keygen

  Liunx: Cat /root/.ssh/id_rsa

Cat /root/.ssh/id_rsa.pub //公鑰

  Windwos:Cat c:/Users/Cmd/.ssh/id_rsa

Cat c:/Users/Cmd/.ssh/id_rsa.pub

添加成功收到郵件

3.創建一個創建鏈接倉庫

  3.1 Mkdir /home/gitroot   //創建目錄

3.2 Cd /home/gitroot     //進入目錄

3.3 Git init             //用命令初始化。讓這個目錄編程git可以管理的倉庫

3.4 git remote add origin 倉庫地址

   git remote add origin [email protected]:zhiqiangwang/Qiang.git

3.4.1 origin是你的倉庫的別名 可以隨便改,但請務必不要與已有的倉庫別名衝突

3.4.2倉庫地址一般來講支持

3.5 Echo –e “QIANG”>Qiang.txt //新建Qiang.txt

3.6 git add Qiang.txt

3.7 git commit –m “add Qiang.txt”

3.8 git push –u origin master //把本地的Qiang倉庫推送到遠程Qiang

3.9 Echo –e “QIANG QIANG”>>Qiang.txt //在Qiang.txt後面追加QIANG QIANG

3.10 git add Qiang.txt

3.11 git commit –m “update Qiang.txt”

3.12 git push //把本地的Qiang倉庫再次推送到遠程Qiang

 

 

克隆一個遠程的倉庫

  Git clone [email protected]:zhiqiangwang/Qiang.git

 

分支管理

  Git branch 查看分支

  Git branch wang 創建分支

  git checkout wang 切換wang分支

 

分支合併

  Git merge wang //把wang分支合併到master

  合併常見的問題

1. 如果master分支和wang分支都對Qiang.txt進行編輯,當合並時提示衝突,許先解決衝突纔可以繼續合併

2.  解決衝突的方法就是在master分支下,編輯Qiang.txt,改爲wang分支裏面的Qiang.txt的內容,然後提交Qiang.txt,在進行合併

3.  如果master分支更改的內容是我們想要的,可以編輯Qiang.txt內容,改爲想要的然後提交,切換到wang分支,然後合併 master分支到wang分支即可。Merge後面跟的分支名字一定是最新的分支

4.  Git branch –d wang //刪除分支

5.  Git branch –D wang /如果分支沒有合併,強制刪除

 

使用分支的原則

 Master分支是非常重要的,線上發佈代碼的時候纔用到這個分支

 Dev分支就是專門用於開發的,重要發佈線上之前纔會把dev分支合併到master

 開發人員應該才dev的基礎上在分支成個人分支,個人分支裏面開發代碼,然後合併到dev分支

在dev分支合併bob分支命令就是

 Git checkout dev //先切換dev分支

 Git merge bob

 

現場保留

在wang 分支編輯wang.txt

去zhi分支修復bug,所以需要先git add wang.txt

然後 git stash保留現場

再切換zhi分支修復,修復完bug之後,在切回wang分支

Git stash list可以查看我們保留過的現場

Git stash apply 恢復現場

Git syash apply stash@{0} 恢復到指定現場

 

遠程分支

git remote –v //查看遠程庫信息

git ls-remote origin//查看遠程分支

推送本地分支wang到遠程分支 wang並建立關聯關係

a.  遠程已有wang分支並且已經關聯本地分支wang且本地已經切換到wang

git push

b.  遠程已有wang分支但未關聯本地分支wang且本地已經切換到wang

git push -u origin /wang

c.  遠程沒有有wang分支並,本地已經切換到wang

git push origin wang: wang

刪除本地分支

git branch –d|-D wang

刪除遠程分支

git push origin  :wang

git branch -m | -M oldbranch newbranch 重命名分支,如果newbranch名字分支已經存在,則需要使用-M強制重命名,否則,使用-m進行重命名。

 

標籤管理

標籤類是於快照功能,給一個版本庫打一個標籤,記錄某個時刻的狀態,也可以隨時恢復該狀態

1.  git checkout master 先切換master上

2.  git tag v1.0 給master打上一個標籤v1.0

3.  git tag 查看所有的標籤

4.  git log –-pretty=oneline –-abbrev-commit//查看歷史commit

5.  git tag v0.9 d03da//針對歷史commit打標籤

6.  git tag –a –m “tag just v1.1” d03da//可以對標籤進行描述

7.  git tag –d v0.8刪除標籤

8.  git push origin v1.0//推送到指定標籤遠程

9.  git push --tag origin//推送所有標籤

10. git tag –d//刪除本地標籤

11. git push origin : refs/tags/v1.0刪除遠程標籤

 

搭建git服務器

1.  Yum install git

2.  添加git用戶,並設置shell爲/usr/bin/git-shell,目的是爲了不讓git用戶遠程登錄

Useradd –s /usr/bin/git-shell

3.  Cd /home/git

4.  創建authorized_keys文件,更改屬主,屬組合權限,用於存客戶端機器上的公鑰

5.  Mkdir.ssh

6.  ssh-keygen //使用該命令生成密鑰對

7.  touch authorized_keys

8.  cat /home/git/id_rsa.pub>>/home/git/.ssh/authorized_keys.

9.  Chown –R git.ssh或者Chown 600 .ssh/authorized_keys

10. 定義存儲git倉庫的目錄 /data/gitroot

Mkdir /data/gitroot

Cd /data/gitroot

11. Git init –bare sample.git //創建一個裸倉庫,裸倉庫沒有工作區,因爲服務器上的git倉庫純粹爲了貢獻,所以不讓用戶登錄到服務器上改工作區,並且服務器上的git倉庫通過以.git結尾

12. Chown –R git.git sample.git

以上操作是在git服務器上做的,平時git服務器不西藥開發人員登錄去修改代碼,他僅僅是充當一個服務器的角色,就像github一樣,平時都是在我們自己的pc上做的

在客戶端上克隆遠程倉庫

Git clone git@ip:/data/gitroot/sample.git

此時可以進入sample目錄下,這個就是我們克隆遠程倉庫。進入到這裏面進行開發,然後push到遠程



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章