git管理操作

目前最火的版本控制軟件就是Git了吧。總結下我的git使用記錄。
1:安裝完git後首先要設置git config –global user.name “” 和git config –global user.email “”
2:創建一一個版本庫非常簡單,首先,選擇一個合適的地方,創建一個空目錄,通過git init命令把這個目錄變成Git可以管理的倉庫
3:編寫一個文本文件(二進制文件是不能記錄具體修改內容的),把文件放到目錄下,第一步,用命令git add告訴Git,把文件添加到倉庫:gitaddreadme.txt,gitcommitGit,: git commit -m “wrote a readme file”-m後面輸入的是本次提交的說明,可以輸入任意內容,當然最好是有意義的,這樣你就能從歷史記錄裏方便地找到改動記錄。
4:再次修改了文件,git status命令可以讓我們時刻掌握倉庫當前的狀態,上面的命令告訴我們,readme.txt被修改過了,但還沒有準備提交的修改。
5:git diff readme.txt查看difference,顯示的格式正是Unix通用的diff格式。可以看到這個文件修改了什麼。
6:再次提交修改的文件,第一步git add readme.txt,第二步git status看看當前倉庫的狀態;第三步git commit -m “add distributed”就可以提交修改了
7:git log 可以告訴我們歷史記錄,顯示從最近到最遠的提交日誌,嫌輸出信息太多,看得眼花繚亂的,可以試試加上–pretty=oneline參數
8:如何退回之前的版本?首先,Git必須知道當前版本是哪個版本,在Git中,用HEAD表示當前版本;上一個版本就是HEAD^,上上一個版本就是HEAD^^,當然往上100 個版本寫100個^比比較容易數不過來,所以寫成HEAD~100
git reset –hard HEAD^可以回退到上一個版本。git reset –hard 3628164又可以回到最新的版本。這種是知道commit ID的,不知道的時候可以用git reflog查看任一個版本的ID
9:工作區就是一個目錄,工作區有個.git是版本庫,這裏有稱爲stage(或者叫index)的暫存區。還有Git爲我們自自動創建的第一一個分支支master,以及指向master的一一個指針叫HEAD。
10:如果更改了readme.txt和新建了一個license文件,git add readme.txt和git add license,git status查看當前狀態,則就會看到在版本庫的更改。git commit -m “undersatnd how stage work”可以一起
提交暫存區的內容。
11:另一種操作:修改了readme.txt,然後git add readme.txt,之後繼續修改readme.txt,然後不增加就提交,則提交的是第一次修改的內容,第二次修改的沒有被提交,git status顯示有修改的文件沒有被提交。再add再提交就可以了,或者先彆着急提交第一次修改,等add第二次修改後一塊提交。
12:撤銷修改:一種是readme.txt自修改後還沒有被放到暫存區,現在,撤銷修改就回到和版本庫一模一樣的狀態;一種是readme.txt已經添加到暫存區後,又作了修改,現在,撤銷修改就回到添加到暫存區後的狀態。git checkout – readme.txt,可以讓文件回到最近commit的文件或者是add的文件;如果是已經add了錯誤的文件,則git reset HEAD readme.txt可以回退版本,也可以把暫存區的修改回退到工作區,然後再git checkout刪除修改
13:刪除文件:新建一個文件,git add test.txt;然後刪除了該文件,則git status 則顯示delete test.txt。可以用git rm test.txt從版本庫中直接刪除,就把記錄頁刪除了,若是刪錯了,可以用git checkout – test.txt恢復該文件,一般輸完命令後就可以看到有命令提示。

14:遠程倉庫:新建一個github上的賬戶,增加sshkey,具體可看步驟。35頁
15:添加遠程庫:在本地創建了一一個Git倉庫後,又想在GitHub創建一個Git倉庫,並且讓這兩個倉庫進行行遠程同步,這樣,GitHub上的倉庫既可以作爲備份,又可以讓其他人通過該倉庫來協作,真是一舉多得。
可從這個倉庫克隆出新的倉庫,也可以把一個已有的本地倉庫與之關聯,然後,把本地倉庫的內容推送到GitHub倉庫。
本地的learngit倉庫下運行命令git remote add origin [email protected]:zhuzhu129130/stereo.git可以把本地的倉庫與github倉庫關聯,git push -u origin master可以把本地庫的所有內容推送到遠
程庫上,從現在起,只要本地作了提交,就可以通過命令:$ git push origin master將本地最新修改推送到遠程倉庫

16:從遠程庫克隆:創建一個新倉庫,用命令git clone克隆一個本地庫:gitclonegit@github.com:zhuzhu129130/gitskill.git,17:,dev,dev: git checkout -b dev,加上-b參數表示示創建並切換,gitbranchdev git checkout dev;dev分支的工作完成,我們就可以切換回master分支,git checkout master,把dev分支的工作成果合併到master分支上:gitmergedev;,dev: git branch -d dev
18:解決衝突:新建分支,修改文件後保存,轉到master分支,修改文件,提交;若是再合併分支和主幹,則有衝突,必須手動解決衝突後,在文件中修改後再提交,刪除分支後就可以了;
git log –graph –pretty=oneline –abbrev-commit可以看到分支合併圖。

19:–no-ff方式的merge:git merge –no-ff -m “merge with no-ff” dev,本次合併要創建一個新的commit,所以加上-m參數,把commit描述寫進去。可以用普通模式合併,合併後的歷史有分支,能看出來曾經做過合併,而而ast forward合併就看不出來曾經做過合併。

20:bug分支:當你接到一個修復一個代號101的bug的任務時,很自然地,你想創建一個分支issue -101來修復它,但是,等等,當前正在dev上進行的工作還沒有提交,並不是你不想提交,而而是工工作只進行行到一一半,還沒法提交,預計完成還需1天時間。但是,必須在兩個小時內修復該bug,怎麼辦?Git還提供了一個stash功能,可以把當前工作現場“儲藏”起來,等以後恢復現場後繼續工作:git stash;

21:git branch -D feature-vulcan丟棄一個沒有被合併過的分支。

22: git pull oeigin master先把之前的人的更新拖下來,合併後在推送上去。
23: 命令git tag name用用於新建一個標籤,默認爲HEAD,也可以指定一個commit id;-a tagname -m “blablabla…”可以指定標籤信息;-s tagname -m “blablabla…”可以用用PGP簽名標籤;命令git tag可以查看所有標籤;git tag -d v0.1刪除本地標籤;git push origin v1.0推送標籤到遠端;刪除遠端的標籤:git tag -d v0.9;git push origin :refs/tags/v0.9
24:.gitignore可以忽略不想跟蹤的文件。.gitignore文文件本身身要放到版本庫裏裏,並且可以對.gitignore做版本管理!14頁;
git config –global alias.lg “log –color –graph –pretty=format:’%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr)%C(bold blue)<%an>%Creset’ –abbrev-commit”

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