git學習常用命令

git基本命令

第一次提交需要設置用戶名和郵箱
git config --global user.name "yang"
git config --global user.email "[email protected]"
如果git從GitHub上下載,上傳,第一次上傳需要輸入用戶名和密碼,用戶名和密碼就是註冊GitHub時的郵箱和密碼

git init  //初始化git
git diff  //可以看到差異性文件
git add ./filename  //提交到版本庫放入暫存
git commit -m "備註" //提交到版本庫
git remote add origin http://github.com/youname/repo.git //關聯遠端倉庫
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 a new 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之後,切換回來幹活分支,回覆工作現場,這時可以用git stash apply 或者 git stash pop 這兩個命令的區別是 git stash apply 這個命令恢復後stash中的內容並沒有刪除,而git stash pop命令恢復後stash中的內容刪除。可以用git stash lish 查看工作現場保存到哪裏去了。
如果有特殊需求需要開發時,也需要先新建分支,在分支上開發,然後合併分支,刪除分支。

小結

修復bug時,我們會通過創建新的bug分支進行修復,然後合併,最後刪除;
當手頭工作沒有完成時,先把工作現場git stash一下,然後去修復bug,修復後,再git stash pop,回到工作現場。
多人協作
當兩個人修改了同一個文件的時候,這個時候提交報錯。這個時候需要提交代碼,提交時報錯,需要先把同事修改的代碼下載到本地,進行手動合併之後再提交,衝突解決。
git pull origin 分支名稱 //從遠程分支上下載到本地,進行手動合併之後
git push origin 分支名稱 //提交到遠端
git remote [-v] 查看遠程分支信息

標籤管理
在git中打標籤非常簡單 如下命令
git tag 標籤名稱
默認給當前最新的commit打標籤
如果想給歷史提交打標籤,查到歷史commit的id號
git tag 標籤名稱 commitId // 這樣就可以了
查看標籤 git tag
搭建git服務器

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