設定使用者
$ git config --global user.name "your name"
$ git config --global user.email "[email protected]"
git倉庫設定
1.新建系統下資料夾
$ mkdir learngit
$ cd learngit
$ pwd
/users/michael/learngit
2.設定為git倉庫
$ git init
initialized empty git repository in /users/michael/learngit/.git/
$ git status 庫狀態 (1.可檢視現在的庫資訊修改狀態,提交後檢視不到;2.可用來檢視已add將要被commit的資訊)
$ git diff 修改檔名,含副檔名 (檢視修改檔案的詳細資訊)
$ git add 檔名,含副檔名 git add -a 全部
$ git commit -m "(修改日誌)"
$ git log 庫提交資訊
$ git reset --hard commit_id 庫回退
$ git reflog 庫命令記錄
add 暫存區
commit 版本庫
場景1:當你改亂了工作區某個檔案的內容,想直接丟棄工作區的修改時,用命令git checkout -- file。
場景2:當你不但改亂了工作區某個檔案的內容,還新增到了暫存區時,想丟棄修改,分兩步,第一步用命令git reset head ,就回到了場景1,第二步按場景1操作。
$ git rm 檔名 從暫存區刪除檔案
$ git checkout -- 檔名
刪錯了,因為版本庫里還有,所以可以把誤刪的檔案恢復到最新版本:
要關聯乙個遠端庫,使用命令git remote add origin git@server-name:path/repo-name.git;
關聯後,使用命令git push -u origin master第一次推送master分支的所有內容;
此後,每次本地提交後,只要有必要,就可以使用命令git push origin master推送最新修改;
要轉殖乙個倉庫,首先必須知道倉庫的位址,然後使用git clone命令轉殖。
git支援多種協議,包括https,但通過ssh支援的原生git協議速度最快。
git鼓勵大量使用分支:
檢視分支:git branch
建立分支:git branch
切換分支:git checkout
建立+切換分支:git checkout -b
合併某分支到當前分支:git merge
刪除分支:git branch -d
當git無法自動合併分支時,就必須首先解決衝突。解決衝突後,再提交,合併完成。
解決衝突就是把git合併失敗的檔案手動編輯為我們希望的內容,再提交。
用git log --graph命令可以看到分支合併圖。
修復bug時,我們會通過建立新的bug分支進行修復,然後合併,最後刪除;
當手頭工作沒有完成時,先把工作現場git stash一下,然後去修復bug,修復後,再git stash pop,回到工作現場。
開發乙個新feature,最好新建乙個分支;
如果要丟棄乙個沒有被合併過的分支,可以通過git branch -d 強行刪除。
命令git tag 用於新建乙個標籤,預設為head,也可以指定乙個commit id;
命令git tag -a -m "blablabla..."可以指定標籤資訊;
命令git tag可以檢視所有標籤。
master分支是主分支,因此要時刻與遠端同步;
dev分支是開發分支,團隊所有成員都需要在上面工作,所以也需要與遠端同步;
bug分支只用於在本地修復bug,就沒必要推到遠端了,除非老闆要看看你每週到底修復了幾個bug;
feature分支是否推到遠端,取決於你是否和你的小夥伴合作在上面開發。
多人協作的工作模式通常是這樣:
首先,可以試圖用git push origin
推送自己的修改;
如果推送失敗,則因為遠端分支比你的本地更新,需要先用git pull試圖合併;
如果合併有衝突,則解決衝突,並在本地提交;
沒有衝突或者解決掉衝突後,再用git push origin
推送就能成功!
如果git pull提示no tracking information,則說明本地分支和遠端分支的鏈結關係沒有建立,用命令git branch --set-upstream-to
origin/
。這就是多人協作的工作模式,一旦熟悉了,就非常簡單。
小結檢視遠端庫資訊,使用git remote -v;
本地新建的分支如果不推送到遠端,對其他人就是不可見的;
從本地推送分支,使用git push origin branch-name,如果推送失敗,先用git pull抓取遠端的新提交;
在本地建立和遠端分支對應的分支,使用git checkout -b branch-name origin/branch-name,本地和遠端分支的名稱最好一致;
建立本地分支和遠端分支的關聯,使用git branch --set-upstream branch-name origin/branch-name;
$ git rebase
rebas$ git rebasee操作可以把本地未push的分叉提交歷史整理成直線;
rebase的目的是使得我們在檢視歷史提交的變化時更容易,因為分叉的提交需要三方對比。
從遠端抓取分支,使用git pull,如果有衝突,要先處理衝突。
命令git push origin 可以推送乙個本地標籤;
命令git push origin --tags可以推送全部未推送過的本地標籤;
命令git tag -d 可以刪除乙個本地標籤;
命令git push origin :refs/tags/可以刪除乙個遠端標籤。
Git學習筆記
git stash git stash list 顯示git棧內的所有備份,可以利用這個列表來決定從那個地方恢復。git stash clear 清空git棧。此時使用gitg等圖形化工具會發現,原來stash的哪些節點都消失了。關於git stash的詳細解釋,適用場合,這裡做乙個說明 使用git...
git 學習筆記
1 git checkout master 切換分支 2 git checkout b xx 新建分支,同時切換到該分支 3 dev 4 git add a 將變動檔案,提交到index 5 git commit m 將 暫存區 檔案,加入到版本控制中。6 git checkout master 7...
Git 學習筆記
顯示版本庫.git所在的目錄 git rev parse git dir 顯示工作區的根目錄 git rev parse show toplevel 相對於工作區根目錄的相對目錄 git rev parse show prefix git config 命令各引數的區別 git config e 版...