git(分布式版本控制系統),每台電腦有自己的版本庫(倉庫,repository),『**伺服器』方便交換修改,安裝後需設定名字和email位址。
建立版本庫:
1、mkdir learngit #建立空目錄,即工作區
2、git init #初始化形成git可管理的倉庫,.git目錄是git跟蹤管理版本庫的
版本庫檔案操作:
1、git add readme.txt #把檔案新增到git倉庫 (新增到暫存區stage)
2、git commit -m "a readme file" #把檔案提交到倉庫,-m指定說明文字
(把stage內容提交到當前分支)
3、git status #檢視倉庫當前狀態
4、git diff readme.txt #檢視修改
5、git log #檢視歷史改動記錄
(git log --pretty=online #檢視精簡記錄
)
6、git reset --hard head^
#版本回退(上上版本為head^ 往上100版本為head~100,head指定當前版本)
(git reset --hard 3628164
(版本號,前幾位即可))
7、git reflog #檢視每次的命令,可顯示commit id,結合版本回退
8、git checkout -- readme.txt #撤銷修改,回到最近一次git commit或git add時的狀態
(git reset head readme.txt # 可以撤銷暫存區的修改放回工作區
)
9、rm readme.txt #刪除工作區檔案
1)git rm readme.txt #從版本庫中刪除檔案
git commit #提交刪除操作
2)git checkout -- readme.txt #恢復刪除
(git checkout 用版本庫的版本替換工作區的版本)
遠端倉庫:
1、在github上建立新的倉庫
2、git remote add origin [email protected]:*/learngit.git #把本地倉庫關聯到github倉庫,遠端庫的名稱是origin
3、git push -u origin master #把本地庫內容推送到遠端庫上
(第一次推送加-u,實現關聯和推送,之後直接使用git push origin master)
4、git clone [email protected]:*/learngit.git
( git支援多種協議,包括https,但通過ssh支援的原生git協議速度最快)
分支管理:(master分支是主分支,head指向master,master指向提交)
1、git checkout -b dev #建立新的分支dev並切換到dev
(等價於: 1)git branch dev #建立dev分支
2)git checkout dev #切換到dev分支
)
2、git branch #檢視當前分支
3、git checkout master #切換到master分支
4、1)git merge dev #合併分支成果
(fast forward模式)
2)git merge --no-ff -m "merge with no-ff" dev #禁用fast forward模式的合併 ,會生成乙個新的commit
5、git branch -d dev #刪除分支
6、git log --graph --pretty=online --abbrev-commit #檢視合併情況,git log --graph可以看到分支合併圖
bug分支:
7、git stash #儲存當前工作現場
(git checkout mater #確定出bug的分支
git checkout -b issue-101 #在出bug的分支建立臨時分支
git checkout master #修復完成切換到原分支
git merge –no-ff -m 「merged bug fix 101」 issue-101 #合併分支
git branch -d issue -101) #刪除分支
8、git stash list #檢視儲存的現場
9、git stash pop #恢復stash內容並刪除
2)git stash drop #刪除stash
)
feature分支:
10、git branch -d feature-vulcan #強制刪除乙個沒有被合併過的分支
11、git remote #檢視遠端庫資訊
(git remote -v #檢視遠端庫詳細資訊
)
12、git push origin master #推送指定分支
13、git checkout -b dev origin/dev #建立遠端origin的dev分支到本地
14、git pull #把最新的提交抓取下來
15、git branch --set-upstream dev origin/dev #設定dev和origin/dev的鏈結
標籤管理:
1、git tag v1.0 #對當前分支打標籤,預設打在最新提交的commit上
(git tag v0.9 6224937 #對指定commit打標籤
git tag -a v0.1 -m 「v0.1 released」 2628164 #-a指定標籤名,-m指定說明文字
git tag -s v0.2 -m 「v0.2 released」 fec145a #-s用私鑰簽名乙個標籤,採用pgp簽名,需安裝gpg)
2、git tag #檢視所有標籤
3、git show v0.9 #檢視標籤資訊
4、git tag -d v0.1 #刪除本地的標籤資訊
5、git push origin :refs/tags/v0.9 #刪除遠端標籤資訊
6、git push origin v1.0 #推送標籤到遠端
(git push origin --tags #一次性推送全部尚未推送到遠端的本地標籤
)
github:
1、fork:在自己賬戶轉殖乙個倉庫
2、git clone [email protected]:*/bootstrap.git
git操作小結
近幾天在學git版本控制,下面是一篇個人的總結 git的基本操作 在乙個資料夾中開啟git 然後輸入命令 git init 就建立乙個新的版本倉庫,在這個資料夾下面會有乙個.git 的檔案 這樣之後,你就可以用git進行這個版本庫的操作。git add 新增到當前目錄的所有檔案到暫存區,當然也可以 ...
git命令小結
it 是乙個很強大的分布式版本管理工具,它不但適用於管理大型開源軟體的源 如 linux kernel 管理私人的文件和源 也有很多優勢 如 wsi lgame pro 一 git 命令初識 在正式介紹git命令之前,先介紹一下git 的基本命令和操作,對git命令有乙個總體的認識 示例 從git ...
Git 學習小結
git是目前最先進的分布式版本控制系統。所謂的分布式,是相對於集中式而言的,比如svn就是集中式的版本控制系統。集中式,顧名思義,就是擁有一台處於中心地位的伺服器,上面存放著版本庫。可以想象成網路裡的c s結構。同樣的,分布式就可以理解成p2p結構,沒有特定的伺服器,每台電腦都可以擁有版本庫,這樣就...