天天看點

學習曆程(五)GitHub

#GitHub

github作為分布式管理的一個代表,從linux之父為了打破集中式管理而碼出來的,從發明到今,一直受到熱捧!
           

如何擷取github公鑰

  1. 首先在你賬戶下面建立一個倉庫
  2. 填寫名稱,簡介(可選),勾選Initialize this repository with a README選項,這是自動建立REAMDE.md檔案,省的你再建立。
  3. 在git shell程式中,進入你自己建立的本地檔案夾(作為本地倉庫)下,輸入以下指令來生成公鑰
    ssh-keygen -C ‘[email protected]’ -t rsa
  4. 連續三個回車之後會在windows目前使用者目錄下生成.ssh檔案夾。
  5. 打開這個檔案夾 找到id_rea.pub,cp全部内容。然後打開github的賬戶設定(一個扳手和一個螺絲刀交叉的圖示)-> 打開ssh keys,右擊add ssh key
  6. title随便輸(我也不知道幹嘛用的。。。)然後把cp的内容放在key欄,
  7. 這樣公鑰的添加就完成了,以後就可以向github上傳了
  8. 在 git shell 輸入指令測試你的公鑰是否認證正确,
    ssh -T [email protected]

正确會有

Warning:Permanently added ‘github.com,207.97.227.239’ (RSA) to the list of known hosts.

  Hi locaj! You’ve successfully authenticated, but GitHub does not provide shell access.

warning 不用理會。

上傳遠端

  1. 首先你必須在遠端建立一個新的倉庫,如果你在建倉庫的時候勾選了,自動生成README.MD,那麼你就必須先把遠端的内容拉取下來,然後再push上去,因為如果你不拉去下來就會造成遠端倉庫和本地倉庫的沖突。
  2. 如果真的不小心造成了沖突有幾種解決方法
    • 使用強制push git push -u origin master -f ,這種方法會使得遠端的内容丢失,在多人協作中不推薦
    • push前先将遠端的pull下來,然後再push上去

      git pull origin master

      git push -u origin master

    • 不想本地和merge遠端修改,可以先建立分支

      git branch[name]

      然後push

      git push -u origin[name]

  3. 有兩種上傳的情況
    1. 第一次上傳:步驟

      git remote add origin url

      git push -u origin master

      2.不是第一次,直接git push

将github的代碼clone到本地

  1. git clone url 這裡的url是你在gihub,進入你要clone的倉庫的url 右上角有一個Git Read-Only 複制下來
  2. 用git進入你相對應的本地倉庫中,輸入指令
    git clone url
  3. 然後需要你輸入password,送出後即可下載下傳

上傳更新

  1. 當你對檔案進行修改了後,你可以輸入
    git status 檢視目前狀态

若顯示nothing to commit (working directory clean)

說明目前沒有需要送出修改,而且工作目錄是幹淨的

這可以檢視你目前的狀态是否有修改,是否上傳。

  1. 然後按照以下指令即可完成上傳

    git add xxx

    git commit -m “描述”

    git push

  2. 當你夥伴修改了個檔案,你卻不知道 你就可以用
    git diff xxx(name)

這樣來檢視哪一行修改過,和原來版本的差別都會列出來

$ git diff readme.txt

diff –git a/readme.txt b/readme.txt

index 46d49bf..9247db6 100644

— a/readme.txt

+++ b/readme.txt

@@ -1,2 +1,2 @@

-Git is a version control system.

+Git is a distributed version control system.

Git is free software.

版本回退

就是當你修改代碼,發現自己都不知道改成什麼樣子的時候,出現很多bug,這時展現了版本控制的重要性你就可以利用版本回退,找到你希望恢複的版本(記的每對一個版本都要用一個commit說明一下,不然以後你想找回自己之前儲存的版本,會比較費勁)

  1. 首先你需要建立版本

    git add xxx 把你修改的地方送出

    git commit -m “注釋” 說明該版本

    隻有執行這兩段指令才會向緩沖區送出資料,缺一不可

    不信的話 自己做一個小實驗,修改一個檔案,一個執行add 一個不執行add,每次執行完去git status

    你就會看到兩者的差別,後者沒有執行add的是沒有送出緩沖區,這樣status還是上一個緩沖區的狀态

    git log 指令顯示從最近到最遠的送出日志

其中一大竄數字是版本号(commit id),這個其實就是sha1計算的值。 好了說了這麼多其實無非就是查出版本号,這樣就可以回到指定的版本号

  1. 回到上一個版本
    git reset –hard HEAD^
  2. 回到上上版本
    git reset –hard HEAD^^
  3. 回到指定版本
    git reset –hard 版本号(前6位)

撤銷修改

當你錯誤操作,并且發現時,你可以用

git checkout –file

這個指令的意思就是把file在工作區的修改全部撤銷,

這邊有兩種情況,一種是file自修改沒有放到暫存區,一種是添加到了暫存區,又作了修改,現在撤銷就回到添加暫存區後的狀态。

總的來說,就是讓這個file回到最近一次git commit 或 git add狀态。

删除檔案

分支

分支的重要作用就是在多人協作的時候,每個人都是在自己分支上修改代碼,不會互相影響,等各自的代碼調通完成,然後就可以合并到主分支(master)上面,這樣對于團隊的效率會有很大的提升。

首先先記幾個用的上的指令

git branch 檢視本地分支

git branch -r 檢視遠端分支

git branch[name] 建立本地分支,不會自動切換分支

git checkout[name]切換分支

git checkout -b [name]切換并建立分支

git branch -d 删除合并過的分支

git branch -D 強行删除分支

git merge [name] 合并分支

git push origin [name] 建立遠端分支,實際把本地分支push到遠端

  1. 使用 git branch 檢視分支 當分支前會有個*号
  2. 在自己的分支下修改完代碼後,你再試試跳轉到主分支上檢視你剛才修該的地方,你會發現你修改的内容全都,不見這就是分支的好處,各自不互相影響。

分支沖突解決