Git學習筆記

2021-10-02 21:59:20 字數 4073 閱讀 9392

git學習筆記

mkdir demo

cd demo

git init

#建立好了.git(empty git repository)

windows系統文字檔案最好用notepad++代替記事本

vi readme.txt    #對readme.txt檔案進行檢視和編輯

gitdiff

#檢視檔案的改動

git add

#將檔案新增到暫存區

git commit -m

#提交至倉庫,並作出說明

git status #檢視倉庫的狀態

# changes not staged for commit: 還沒有add

# changes to be commited: add了但是沒有commit

注意理解工作區、暫存區、版本庫三個概念

git log    #檢視歷史記錄(git log --pretty=oneline可以看起來更簡潔)

git reset --hard head^ #head指當前版本的檔案(可理解為指標),版本前乙個記為head^,以此類推(head~100表示前100個)

git reset --hard commit_id #利用id也能實現版本回退

#如果git bash沒有關閉,則可以重新回到「未來」:

git reset --hard commit_id

#丟棄工作區的改動(restore和checkout兩種方式)

git restore

git checkout --

#取消暫存(如果想把工作區的檔案也撤銷修改應該繼續進行第一步)(restore和reset兩種方式)

git restore --staged

git reset head

#從版本庫中刪除

gitrm

git commit -m

#用rm刪除只能刪除工作區的檔案,恢復用:

git checkout --

#用git rm刪除檔案不僅刪除了檔案,還新增到了暫存區,恢復用:

git reset head

git checkout --

#建立ssh key

ssh-keygen -t rsa -c "[email protected]"

#github->account settings->add ssh key中,title任意,key內填入/user/使用者名稱/id_rsa.pub的內容,然後add key

#新增遠端庫:create a new repo

#根據github提示,把本地庫推入遠端庫

git remote add origin git@serve-name:path/repo-name.git

git push -u origin master

#以後的本地提交可以如下操作:

git push origin master

#master指向提交,head指向當前分支

#建立並切換分支(相當於git branch dev + git checkout dev兩個語句)(兩種方式)

git checkout -b dev

git switch -c dev

#檢視當前分支(git branch列出所有分支,*表示當前分支)

git branch

#切換分支(兩種方式)

git checkout

git switch

#合併分支(將指定分支合併到當前分支)

git merge dev

#刪除分支

git branch -d dev

#兩個分支的檔案不同時,合併分支會導致衝突

#檢視衝突的檔案內容,對檔案進行修改(手動解決衝突)

#git add然後git commit手動修改的檔案

#分支合併(含解決衝突)的圖形顯示

git log --graph

#通常合併分支的時候git會使用fast forward模式,此模式下,刪除分之後會丟失分支資訊

#可用「--no-ff」方式的git merge強制禁用fast forward,在merge時生成乙個新的commit

git merge --no-ff -m dev

#實際開發中,master十分穩定,每個人在dev上工作,每個人都有自己的分支,時不時忘dev上合併,最後通過master發布穩定版本

#把當前工作現場儲存起來,等以後恢復現場後繼續工作

git stash

#檢視儲存的工作現場

git stash list

#恢復現場但是不刪除stash內容:

#恢復現場並刪除stash:

git stash pop

#同樣的bug在master上修復完成後,也想把dev同樣的問題修改過來(複製的是修改不是分支)

git cherry-pick

#每新增乙個新功能時,可以建立乙個feature分支,開發完合併、刪除

#強行刪除分支

git branch -d feature_n

#檢視遠端庫

git remote

#檢視遠端庫更詳細的資訊

git remote -v

#推送分支

git push origin

#注意:主分支master應該時刻與遠端庫同步

#dev分支為開發分支也應該同步

#bug分支無需同步,feature分支視情況而定

#多人協作時,大家都會王master和dev分支上推送各自的修改

#從遠端庫轉殖時預設情況下只能看到master分支

#想要在dev分支上開發,必須建立orgin的dev

git checkout -b

orgin/

#抓取orgin dev:

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

git pull #如果有衝突則解決衝突(參考解決衝突)

#多人工作模式如下:

1 #推送自己的修改

git push origin

2 #如果推送失敗,則拉取,試圖合併(有衝突則解決衝突,本地提交)

git pull

#如果提示no tracking information,則本地分支與遠端分支沒有建立聯絡

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

3 #衝突解決後或無衝突,推送

git push origin

#切換到需要打上標籤的分支上

#打上標籤

git tag

#檢視所有標籤(按照字母排序列出,不是時間順序)

git tag

#對特定版本打上標籤

git tag

#檢視標籤資訊

git show

#建立帶有說明的標籤

git tag -a -m

#刪除標籤

git tag -d

#建立的標籤只儲存在本地,可以放心刪除

#如果要推送標籤

git push origin

#一次性推送全部尚未推送的標籤

git push origin --tags

#刪除標籤

git tag -d

git push origin :refs/tags/

#如果在遠端也存在,則刪除遠端標籤

在github上,可以任意fork開源倉庫

自己擁有fork後的倉庫的讀寫許可權

可以推送pull request給官方倉庫貢獻**

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 版...