天天看點

<Git>git學習

1.安裝

  分布式版本控制:工作電腦儲存完整的代碼,中央伺服器挂了也可以使用

  集中式版本控制:中央伺服器挂了就涼涼

<Git>git學習
<Git>git學習
1 sudo apt-get install git      

git安裝

檢測安裝成功

git       

2.建立版本庫

 新鍵一個目錄git_test

mkdir git_test
      

  

初始化git init

git init
      

 

3.版本的建立和使用

在git_test目錄下建立一個檔案code.txt

touch code.txt      

建立一個版本

設定郵箱

git config --global user.email '你的郵箱'      

設定使用者名(作者)

git config --global user.name '小黑'
      

增加版本檔案(可以添加多個檔案,一起commit)

git add code.txt
      

送出版本檔案,後面是版本說明

git commit -m '版本1.0'        

檢視版本情況

git log
      

可以看到commit後面的版本序列号

commit 02fc1b4e2bba0d2d44485f1b0f60c425154b364e
      

更改code.txt後建立新版本,隻是記錄你相當于前一個版本的情況

git add code.txt

git commit -m '版本1.1'
      

可以看到新的版本資訊

git log      

版本的回退

HEAD^:HEAD代表目前版本,一個^代表回退一個版本

HEAD~回退版本數:~1代表回退一個版本,~100回退100個版本

回退一個版本

git reset --hard HEAD^
      

利用版本編号commit後面的數,重新回到目前版本1.1

git reset --hard 9acd9d0fa55adb14bb0e352bb99761a4144932b1        

當然用前幾個編号就行,回到版本1.0

git reset --hard 02fc1b4e
      

4. 工作區和暫存區 

電腦中的目錄就是工作區,這裡我們的git_test就是工作區

工作區的隐藏目錄.git,而是git版本庫,版本庫中有個暫存區(git add--工作區進暫存區)(git commit----暫存區到版本情況)

檢視修改情況

git status
      

隻會管理暫存區的修改,沒有送出的暫存區的修改不管理 (簡單講,嚴格按照步驟來,就沒啥事情)

丢棄工作區的修改

git checkout -- code.txt
      

如果已經送出到暫存區了需要2步(已經ADD)

1.撤銷暫存區

git reset HEAD code.txt
      

2.撤銷工作區

git checkout -- code.txt
      

對比檔案的不同(-代表HEAD版本,+代表工作區的檔案)

git diff HEAD -- code.txt
      

對比2個版本的不同

git diff HEAD HEAD^
      

删除檔案

rm code2.txt
      

同樣可以用撤銷工作區的修改,恢複檔案,同樣的也可以以把删除作為版本的一種

git checkout -- code2.txt
      
<Git>git學習

5.分支管理 

<Git>git學習

主分支:master分支

建立分支:就是建立新的指針,改變HEAD的指向

檢視有幾個分支

git branch
      

建立并切換分支(原本的都存在)

git checkout -b dev
      
<Git>git學習

後面的操作都是在dev分支的操作(隻是指針)

切換分支

git checkout master
      

合并分支(就是把master指針,放到這個分支這裡)

git merge dev
      

删除分支(去掉指針)

git branch -d dev
      

沖突的解決(2個分支都修改了同一個檔案),無法快速合并,可以手動修改在送出一個新的

檢視沖突的修改情況

git log --graph --pretty=oneline
      
<Git>git學習

删除dev分支

git branch -d dev
      
<Git>git學習

2個分支不編輯同一個檔案,可以進行合并,不會沖突,但是不會快速送出,會幫你合并後進行新的送出,會需要你合并的說明資訊

不使用快速合并,讓他進行新的送出(BUG臨時分支,就不會進行快速合并,會使用這個)

git merge --no--ff -m '禁用fast-forward'  dev
      
<Git>git學習

儲存工作現場(去修複bug)

git stash
      

不使用快速合并修複bug,并删除BUG分支,恢複工作現場(切換回工作區)

儲存工作現場清單

git stash list
      

恢複現場

git stash pop
      

6.github網站

 建立倉庫、

<Git>git學習

settings中綁定SSH

生成SSH

在主目錄下編輯隐藏檔案

vim .gitconfig 
      

生成ssh

ssh-keygen -t rsa -C '郵箱'
      

檢視

cd .ssh
      
cat id_rsa.pub
      

将得到的公鑰放在github上

<Git>git學習

克隆項目

<Git>git學習

在Ubuntu上使用指令克隆項目

git clone [email protected]:HEKAI3-2/xiaohei.git
      

開發上傳

<Git>git學習
<Git>git學習

本地分支跟蹤遠端分支

git branch --set-upstream-to=origin/dev dev 
      

編輯新的檔案,送出不推送

<Git>git學習

可以檢視跟遠端分支的比較情況,并推送

<Git>git學習

從遠端分支上拉取代碼

git pull origin dev
      

實際使用git

<Git>git學習

最簡單的掌握

<Git>git學習

繼續閱讀