1. 程式人生 > >Git使用方法.md

Git使用方法.md

git基本操作

git配置

  • 初次執行git時對git的配置

    git config --global user.name "<your github name>"
    
    git config --global user.email <your github email>
  • clone遠端倉庫的專案到本地

    git clone https://github.com/username/example.github.io.git

基本命令

git status // 檢視當前專案下的狀態
git remote -v //檢視當前專案遠端連線的是哪個倉庫地址
git push -u
origin master // 將本地的專案提交到遠端倉庫中

上傳本地檔案到遠端倉庫

git add .
git commit -c "commit information"
git push 

同步遠端倉庫到本地

git fetch origin master
git log -p master..origin/master 
git merge origin/master

上述命令首先從遠端的origin的master主分支下載最新的版本到origin/master分支上然後比較本地的master分支和origin/master分支的差別最後進行合併。

如果想強制合併本地專案可使用以下命令

git fetch --all

git reset --hard origin/master

git fetch

如果專案中刪除了一些檔案,如何提交

git status 
git add . 
git rm your/file/path
git rm folder/path -r // 刪除該目錄下的所有檔案(包括目錄)

關聯本地工程到github倉庫

git init  //地倉庫初始化,執行完後會在工程目錄下生成一個.git的隱藏目錄
git add .   //新增所有檔案到本地索引,命令用法:git add <file>
git commit -m "My first commit operation"
//提交修改到本地倉庫,-m選項新增提交註釋 git remote add origin [email protected].com:yihao31/yihao31.github.io.git //新增遠端倉庫地址,儲存在origin變數中 git push origin master //按照前一條命令中origin給定的github地址推送到github倉庫的master分支

使用github 管理分支

本地的分支管理

git branch dev  // 建立一個名為dev的分支
git checkout dev  //切換分支
git branch //檢視當前已有的分支資訊,並且在當前所在分支高亮 

為什麼要建立分支?

比如某天想搞些新事情了,可以建立一個名為debug的分支在上面除錯修改,這樣如果失敗了也不會影響到origin branch,而除錯成功了也可以直接合並:
+ 建立一個新分支:

git checkout -b debug

+ 如果最後沒有除錯成功,可以選擇留著debug分支,也許以後有靈感了再來弄(程式碼註釋一定要做好),但是如果就不想弄了也可以選擇刪除分支: 
```
git brach -d debug
```
+ 如果演算法除錯成功了,想合併到master中:
```
git checkout master // 切換到master branch
git merge debug // 合併debug 到master
``` 

注意: 合併發生衝突是暢遊的事情,因此一旦出現類似下面的提示,就得自己手動解決按衝突了

CONFLICT (content): Merge conflict in ...
Automatic merge failed; fix conflicts and then commit the result.

git會使用下面的格式提醒使用者哪裡有衝突:

<<<<<<<HEAD
 master原有的內容
=======
 debug分支中衝突的內容
>>>>>>>debug

如果比較感興趣想看看git是怎麼記錄合併的,可以使用底下的命令:

git log --graph --pretty=oneline --abbrev-commit

Appendix

Local

git clone [email protected]:xiahouzuoxin/mp3-encode.git        # 在本地克隆一個github上倉庫
git status                    # 獲得當前專案的一個狀況
git commit -a              # 將修改檔案(不包括新建立的檔案)新增到索引,並提交到倉庫
git add [file]                # 新增檔案到本地索引
git branch                  # 獲得當前倉庫中所有分支列表
git branch zx-branch                # 新建本地一個名為zx-branch的分支,主分支名為master
git branch -D branch_name     # 刪除名稱為branch-name的本地分支
git checkout master                  # 切回主分支,切換到zx-branch只需要將master改成zx-branch
git log                                        # 檢視提交日誌,有許多附加引數
    git log -p                               # 顯示補丁
    git log --stat                          # 日誌統計:那些檔案修改了,修改了多少行內容
    git log --graph                       # 使日誌看上去更漂亮
git diff master..zx-branch           # 比較兩個分支之間差異
git remote rm origin                   #  刪除origin變數地址

git branch [name]                 # 建立本地分支,注意新分支建立後不會自動切換為當前分支
git checkout [name]              # 切換到name分支
git checkout -b [name]          # 建立name分支並切換到name分支

git merge [name]                  # 將name分支與當前分支合併,name可以是遠端分支,如origin/master

Remote:

git push origin [name]          # 建立遠端name分支
git push origin:zx-branch      # 刪除遠端origin倉庫地址的zx-branch分支 
git branch -r                         # 獲得當前倉庫中所有分支列表,即檢視遠端分支