1. 程式人生 > >github常用命令

github常用命令

幾個基本Github命令的使用。

1.git clone

用於克隆程式碼到本地。                git cloneurl ——克隆url對應的專案到本地。           git clone url folderName ——將url對應的專案克隆島folderName資料夾

2. git pull 

           Github支援協作程式碼開發管理,會經常遇到需要更新別人的程式碼或者在不同的電腦上更新自己的程式碼。那麼使用git pull命令即可更新程式碼。git pull 可以接受很多中引數,詳見常見具體的用法為:

          git pull—— 直接從遠端主分支更新程式碼 , git pull 相當於git pull origin master

          git pull forkName branchName —— 從forkName對應的url更新branchName分支。

3. git remote

   用於管理遠端倉庫。

        git remote —— 顯示已經新增的遠端倉庫名稱列表,當從遠端地址上clone了一個專案時,會預設新增一個origin名字的倉庫,對應clone時的url。等同於git remote show

        git remote show name —— 顯示具體名字對應的倉庫的資訊。具體如下:      

[plain] view plain copy
print
?在CODE上檢視程式碼片派生到我的程式碼片
  1. * remote origin  
  2.   Fetch URL: https://github.com/gavincook/test.git  
  3.   Push  URL: https://github.com/gavincook/test.git  
  4.   HEAD branch: master  
  5.   Remote branch:  
  6.     master tracked  
  7.   Local branch configured for 'git pull':  
  8.     master merges with remote master  
  9.   Local ref configured for 'git push':  
  10.     master pushes to master (up to date)  
* remote origin
  Fetch URL: https://github.com/gavincook/test.git
  Push  URL: https://github.com/gavincook/test.git
  HEAD branch: master
  Remote branch:
    master tracked
  Local branch configured for 'git pull':
    master merges with remote master
  Local ref configured for 'git push':
    master pushes to master (up to date)

        git remote add name url —— 新增遠端倉庫。如:

[plain] view plain copy print?在CODE上檢視程式碼片派生到我的程式碼片
  1. git remote add antstudio [email protected]:AntStudio/test.git  
git remote add antstudio [email protected]:AntStudio/test.git

   git remote rm name——刪除遠端倉庫在本地的對映。 如: [plain] view plain copy print?在CODE上檢視程式碼片派生到我的程式碼片
  1. git remote rm antstudio  
git remote rm antstudio

4. git fetch

      用於更新程式碼,和git pull 功能類似,但是有一些區別。git pull 更新完程式碼後會自動合併到當前分支,而git fetch不會合並。常見用法如下:

      git fetch origin master ——— 將分支程式碼更新到origin/master分支上
      git fetch forkName remoteBranchName:branchName ——— 將分支程式碼更新到branchName分支上

5. git merge

處理分支的合併。

       git merge master —— 將主分支合併到當前分支。如果沒有任何衝突則使用此命令即可。 

這裡說下有衝突的情況,現在在兩個分支都對同一個檔案進行修改,在同一個檔案中,如master分支新增“master commit”, test分支新增“test commit”. 然後將兩個分支合併。在test分支合併主分支:git merge master.我們會看到如下的情況:

[plain] view plain copy print?在CODE上檢視程式碼片派生到我的程式碼片
  1. Auto-merging test.txt  
  2. CONFLICT (content): Merge conflict in test.txt  
  3. Automatic merge failed; fix conflicts and then commit the result.  
Auto-merging test.txt
CONFLICT (content): Merge conflict in test.txt
Automatic merge failed; fix conflicts and then commit the result.

也就是說兩個分支有衝突,那麼我們可以按照以下步驟進行衝突的解決:

(1).首先把改動恢復到merge之前,因為目前的狀態是:

[plain] view plain copy print?在CODE上檢視程式碼片派生到我的程式碼片
  1. Unmerged paths:  
  2.   (use "git add <file>..." to mark resolution)  
  3.       both modified:      test.txt  
 Unmerged paths:
   (use "git add <file>..." to mark resolution)

       both modified:      test.txt

我們先新增改動到暫存區域,git add .,然後用git reset head -- .最後使用git checkout -- .取消改動。到這裡,test就已經恢復到merge之前的狀態

    (2).生成test分支相對於master的補丁

git format-patch master

      使用這個命令後我們得到“0001-.test-commit.patch”,在專案的根目錄下,我們將這個檔案剪下到其他目錄,比如D:/

       (3).切回出分支,git chekcout master。 然後進行補丁修正,

             首先進行git am D:\0001-.test-commit.patch打補丁,如果沒有衝突則此補丁修正成功,如果有衝突就會得到形如下面的結果:

[plain] view plain copy print?在CODE上檢視程式碼片派生到我的程式碼片
  1. E:\workspace\github\test [master]> git am D:\0001-.test-commit.patch  
  2. Applying: .test commit  
  3.  rror: patch failed: test.txt:1  
  4. error: test.txt: patch does not apply  
  5. Patch failed at 0001 .test commit  
  6.    e:/workspace/github/test/.git/rebase-apply/patch  
  7.                esolved this problem, run "git am --resolved".  
  8. If you prefer to skip this patch, run "git am --skip" instead.  
  9. To restore the original branch and stop patching, run "git am --abort".  
E:\workspace\github\test [master]> git am D:\0001-.test-commit.patch
Applying: .test commit
 rror: patch failed: test.txt:1
error: test.txt: patch does not apply
Patch failed at 0001 .test commit

   e:/workspace/github/test/.git/rebase-apply/patch
               esolved this problem, run "git am --resolved".
If you prefer to skip this patch, run "git am --skip" instead.
To restore the original branch and stop patching, run "git am --abort".

接著使用git apply --reject D:\0001-.test-commit.patch生成rej檔案,來輔助我們解決衝突:

我們可以得到如下結果:

[plain] view plain copy print?在CODE上檢視程式碼片派生到我的程式碼片
  1. E:\workspace\github\test [master]> git apply --reject D:\0001-.test-commit.patch  
  2. Checking patch test.txt...  
  3. error: while searching for:  
  4. Github test!  
  5. Hello Gavin.  
  6. error: patch failed: test.txt:1  
  7. Applying patch test.txt with 1 reject...  
  8. Rejected hunk #1.  
  9. E:\workspace\github\test [master +1 ~0 -0 !]>  
E:\workspace\github\test [master]> git apply --reject D:\0001-.test-commit.patch

Checking patch test.txt...
error: while searching for:
Github test!
Hello Gavin.
error: patch failed: test.txt:1
Applying patch test.txt with 1 reject...
Rejected hunk #1.
E:\workspace\github\test [master +1 ~0 -0 !]>
此時我們會發現在衝突檔案同級目錄下生成了一個rej檔案,我們開啟這個rej檔案,可以看到: [plain] view plain copy print?在CODE上檢視程式碼片派生到我的程式碼片
  1. diff a/test.txt b/test.txt  (rejected hunks)  
  2. @@ -1,2 +1,3 @@  
  3.  Github test!  
  4. -Hello Gavin.  
  5. \ No newline at end of file  
  6. +Hello Gavin.  
  7. +Test commit!  
  8. \ No newline at end of file  
diff a/test.txt b/test.txt	(rejected hunks)
@@ -1,2 +1,3 @@
 Github test!
-Hello Gavin.
\ No newline at end of file
+Hello Gavin.
+Test commit!
\ No newline at end of file
即說明在Hello Gavin的下一行添加了一個Test commit的文字,而我們主分支呢,也在Hello Gavin的下一行添加了一行文字,"master test!". 我們可以直接將"Test commit!" 新增到test.txt即可,比如我們這裡就新增到"master test!"的下一行,然後儲存。(實際解決衝突的時候需要根據具體的情況來處理)

   (4).提交補丁的改動,現在我們已經解決了衝突的程式碼部分,接著我們應該提交這個改動。首先使用 git rm -f .\test.txt.rej來刪除rej檔案,只需要提交改動的程式碼檔案。

[plain] view plain copy print?在CODE上檢視程式碼片派生到我的程式碼片
  1. git add .  
  2. git am --resolved  
git add .

git am --resolved

這樣就完成了一個有衝突的補丁的修正,如果有多個補丁可以重複此步驟進行處理。

6.  git branch

        用於本地分支的管理        git branch —— 檢視當前倉庫的所有本地分支        git branch branchName —— 建立名字為branchName的分支        git branch -D branchName—— 刪除名字為branchName的分支

7.  git checkout

         git checkout用於分支的切換,如:          git checkout test —— 如果test分支存在,則切換到test分支         git checkout -b test —— 用於test分支不存在的情況,會先建立test分支再切換到test分支。相當於git branch test , git checkout test兩條命令

這裡主要介紹了一些常用的命令,git的命令還有很多,每一個命令的用法也有很多。

轉自:http://blog.csdn.net/gavincook/article/details/17429137

相關推薦

Ubuntu GitHub 常用命令

目的 head gen 方便 文本 commit 比較 -s email 發現以前的學習方法有一些問題,接下來學習一門新的技術和方法,學會使用博客把用的知識點,提煉出來,方便以後自己的學習還有使用。 1.安裝 Ubuntu Linux,通過一條sudo apt-get

gitHub 常用命令 與 合並沖突問題

本地 界面 想要 合並沖突 working round 自動 spa 檢出 git branch 查看所在當前分支(倉庫) git pull 刷新當前分支(倉庫)文件到本機 git status 查看狀態提示On branch master Your branch is u

gitHub 常用命令 與 合併衝突問題

git branch 檢視所在當前分支(倉庫) git pull 重新整理當前分支(倉庫)檔案到本機 git status 檢視狀態提示On branch master Your branch is up to date with 'origin/master'.nothing to commit, wo

github常用命令彙總

創立版本庫 mkdir Baidu cd Baidu git init SSH ssh-keygen -t -rsa -C “[email protected]” (在github上new SSH,內容為id_rsa.pub) 新增遠端庫 (github上新建git倉庫

Github常用命令,管理Git倉庫文件分享

上次給大家分享了一個別人的部落格,今天看到了一個網站 給大家推薦一下,裡面是管理GitHub的文件,內容很豐富,GitHub遇到什麼問題看這個文件基本都能解決。 https://coding.net/help/doc/git/repository.html#git_clone 這就是

GitHub常用命令及使用

GitHub使用介紹 摘要: 常用命令: git init 新建一個空的倉庫git status 檢視狀態git add . 新增檔案git commit -m '註釋' 提交新增的檔案並備註說明git remote add origin [email protect

Git上傳GitHub常用命令

git config --global user.name 'lanyu96' git config --global user.email '[email protected]' //設定SSH key cd ~/.ssh  //檢查是否已生成金鑰 ssh-keygen -t

Linux 使用 github 常用命令

初始 下載 message 初始化 stat bubuko 應用 esp 更新 Linux 使用 github 常用命令 今天整理一下常用的 github 命令,自己只是一個編程小白,有些地方可能做的不是很好,僅僅用作自己的學習使用。 創建一個文件夾用於存放gi

Linux 使用 github 常用命令

Linux 使用 github  常用命令 今天整理一下常用的 github 命令,自己只是一個程式設計小白,有些地方可能做的不是很好,僅僅用作自己的學習使用。  建立一個資料夾用於存放github倉庫 mkdir 資料夾名稱 如果已經存在會提示給你,因為我建

Git與Github 常用命令彙總

簡而言之 Git是由Linux kernel創立者 Linux Torvalds 開發的(因為BitKeeper的問題),屬於DVCS(分散式版本控制) Github 是一個開源專案社群,始於2007(08上線),GitHub 裡面的專案可以通過標準的 Git 命令進行訪

github常用命令

幾個基本Github命令的使用。 1.git clone 用於克隆程式碼到本地。                git cloneurl ——克隆url對應的專案到本地。           git clone url folderName ——將url對應的專案克隆島folderName資料夾 2. gi

github常用命令流水線

1.寫在前面 我們接觸github的時間也不少了,那麼是否可以嘗試使用它來工作了呢? 2. 流水線 一個檔案的流動路徑大致如下 可以看到有在檔案系統,工作空間,本地repo和遠端repo四個不同的部分,通過不同的操作來進行不同的流轉。值得注意的是,我們這裡只考慮同一個檔

Github(windows)建立倉庫(後附:上傳個人專案,Git常用命令查詢)和配置本地ssh key

建立Github使用者並配ssh 最近需要將課設程式碼上傳到Github上,之前只是用來fork別人的程式碼。 這篇文章寫得是windows下的使用方法(可能隨著版本的更新,部分的操作位置不一樣,需要自己找找。但是主要的過程是一樣的)。 第一步:建立Github新賬戶

把git倉庫從碼雲遷到github,及git常用命令 git常用命令--持續更新

  前言 剛開始建倉庫的時候,因為網路的原因選擇了國內的碼雲。後來又想換成github,畢竟平時github使用率比較高。   替換遠端倉庫地址方式如下: git remote set-url origin 你新的遠端倉庫地址   另附上git常用命令

git(二)--常用命令、rsa公鑰配置、github

本篇,我們介紹下git命令常用命令,以及github的使用。 github,相信各位讀者都是再熟悉不過了的。不過在此之前,希望讀者可以註冊個github賬號,用自己的使用者名稱及郵箱即可,非常的easy。 打個小廣告哈,筆者的github地址: https://githu

[Github]msysgit的使用&Git常用命令

>【一個一直沒注意到的問題】 因為一些原因,我需要在windows上進行Git倉的管理。 之前一直是在Linux上跑Git Bash,換了個環境,遇到了一個迷之問題。就是所有提交的文件首部的首字母總會迷之變成“?”或者其他什麼東西。 我查了下,據說是微軟自帶的文字編輯

GitHub 常用的幾條命令

clone 查看 bsp 地址 狀態 pro mit div pull 初始化倉庫 git init 下載倉庫 git clone 倉庫地址 將所有違背跟蹤的文件添加到本地倉庫 git add . 查看狀態 git status

oozie 常用命令

3.3 ued submit operation -s clean up sim killed require 1.驗證wokflow.xmloozie validate /appcom/apps/hduser0401/mbl_webtrends/workflow.xml 

Linux下常用命令之sed學習總結

linux sed sed命令 正則表達式 sed總結 Sed功能說明:Sed是linux下一個強大的文本文件處理工具,通過對文件增加、刪除、查找、查詢操作,配合正則表達式以實現工作中的各種需求。同時也是一名運維人員必須掌握的核心技能。---------------------------

【長期更新】Ubuntu常用命令備忘錄

err bsp ubuntu lib ubunt clas apt 問題 error Error Could not get lock /var/lib/dpkg/lock 出現這個問題可能是有另外一個程序正在運行,導致資源被鎖不可用。而導致資源被鎖的原因可能是上次運行安