git基本命令
第一次提交需要設定使用者名稱和郵箱
git config --
global user.name "yang"
git config --
global user.email "[email protected]"
git init //初始化git
git diff //可以看到差異性檔案
git add ./filename //提交到版本庫放入暫存
git commit -m
"備註"
//提交到版本庫
git remote add origin //關聯遠端倉庫
git remote rm origin//刪除遠端倉庫關聯
git remote -v
//檢視已關聯遠端庫
git push -u origin master //提交到遠端倉庫 第一次以後用:git push origin master
也可以直接轉殖遠端倉庫
git clone 遠端倉庫位址
建立分支
1.git branch[option][name]
如果不加任何引數,他可以用來檢視所有的分支,而在分支前面有*標記的則為當前分支,如果加上name為新建立分支,如git branch child,這時新建立了乙個名為child的分支,
-v 用於檢視各個分支的最後一次commit的資訊
-d 刪除分支
-r 檢視遠端主機分支
-a 檢視所有分支
1.在遠端建立分支
git branch 分支名字 //先建立本地分支 git push origin 分支名字 // 本地分支提交到遠端
2.刪除遠端分支 ::git push origin -d 分支名字
3.刪除本地分支 : git branch -d 分支名字
git push origin 分支名稱 //把建立的本地分支提交到遠端
git checkout 分支名稱 //切換分支
git checkout -b 分支名稱 //建立並切換到該分支
日誌檢視兩種檢視方式 第二種看的更清爽
1.git log
2.git log –pretty=oneline
時光穿梭機版本回退
head指向的版本就是當前版本,因此,git允許我們在版本的歷史之間穿梭,使用命令git reset –hard commit_id。
穿梭前,用git log可以檢視提交歷史,以便確定要回退到哪個版本。
要重返未來,用git reflog檢視命令歷史,以便確定要回到未來的哪個版本。
撤銷修改
git
checkout--
bb.txt
命令git checkout – bb.txt意思就是,把bb.txt檔案在工作區的修改全部撤銷,這裡有兩種情況:
一種是readme.txt自修改後還沒有被放到暫存區,現在,撤銷修改就回到和版本庫一模一樣的狀態;
一種是readme.txt已經新增到暫存區後,又作了修改,現在,撤銷修改就回到新增到暫存區後的狀態。
總之,就是讓這個檔案回到最近一次git commit或git add時的狀態。
刪除檔案
現在你有兩個選擇,一是確實要從版本庫中刪除該檔案,那就用命令git rm刪掉,並且git commit:
$ git rm test.txt
rm 'test.txt'
$ git commit -m "remove test.txt"
[master d46f35e] remove test.txt
1 file changed, 1 deletion(-)
delete mode 100644 test.txt
git push origin 遠端檔案更新
衝突問題
假如我們新建乙個分支,在上面修改了乙個檔案之後提交。這個時候同事在主分支上也修改了這個檔案,提交了。這個合併分支就會出現衝突。
出現衝突必須手動解決衝突,
解決衝突就是把git合併失敗的檔案手動編輯為我們希望的內容,再提交。
用git log –graph命令可以看到分支合併圖。
分支管理策略
1.一般合併分支的時候都使用git merge + 被合併分支名稱。這時git會用fast forward模式這種模式會丟掉分支資訊。
2.如果要強制禁用掉fast forward模式,git就會在merge時生成乙個新的commit,保留下分支的資訊。
首先建立乙個叫fenzhi分支
git checkout -b dev
switched to
anew branch 'dev'
修改裡面乙個叫zx.txt檔案提交
git add zx.txt
git commit -m "修改zx"
然後切換會master分支
git checkout master
準備把dev上的資訊合併到master分支上,這裡注意–no–ff 引數 加上這個引數合併時保留分支資訊
git merge --no--ff -m "用no方式合併分支,保留分支資訊" dev
注意在實際開發中,我們應該按照幾個基本原則管理分支,
保證master分支時穩定的,然後建立乙個工作分支,大家都在工作分支上幹活,工作分支是不穩定的,隨時接受新的合併。你和你的小夥伴都有自己的分支,幹完活之後合併到工作分支上去。什麼時候合併到主分支呢,比如發布版本的時候,我們把工作分支合併到主分支上
總結:git分支功能十分強大,在團隊開發中應該充分應用,在合併分支的時候加上–no–ff引數合併時可以保留合併後的歷史分支,而用fast forward合併就看不出來曾經做過合併
bug分支
軟體開發當中bug像家常便飯一樣會經常出現,有了bug需要修復,但是你這時正在開發程式,預計一天才能開發完,但是這個bug馬上就需要你修改,怎麼辦?
這個時候你可以用git當中的乙個命令,先把工作現場儲存起來,修復完bug之後再來繼續幹活
git stash
修復bug時,我們會通過建立新的bug分支進行修復,然後合併,最後刪除;
當手頭工作沒有完成時,先把工作現場git stash一下,然後去修復bug,修復後,再git stash pop,回到工作現場。
多人協作標籤管理
在git中打標籤非常簡單 如下命令
git tag 標籤名稱
預設給當前最新的commit打標籤
如果想給歷史提交打標籤,查到歷史commit的id號
git tag 標籤名稱 commitid // 這樣就可以了
檢視標籤 git tag
搭建git伺服器
Git學習 git常用命令
我們常用 p 選項展開顯示每次提交的內容差異,用 2 則僅顯示最近的兩次更新 還有許多摘要選項可以用,比如 stat,僅顯示簡要的增改行數統計 p 按補丁格式顯示每個更新之間的差異。stat 顯示每次更新的檔案修改統計資訊。shortstat 只顯示 stat 中最後的行數修改新增移除統計。name...
git常用命令學習
1.提交專案 1.遠端建立專案 git clone 鏈結 拷貝下來 git add 增加的檔案 新增本地新增內容 git commit m 注釋 或者 a進入圖形介面寫入注釋 git push original master 將本地檔案提交遠端倉庫 當我們後續改變公升級專案後,再次提交如下 git ...
Git 常用命令學習
學習了網上一些git的資料 包括廖雪峰的教程 總結一下 1 git和svn命令的對比 git clone svn checkout git checkout svn switch git push svn commit 2 git add readme.txt 是把readme.txt從worksp...