github網站介紹、並使用git命令管理github(詳細描述)


本章學習:

  • 1)熟悉github網站
  • 2)通過git命令遠程管理github,
  • 3)git命令使用ssh key密鑰無需輸入賬號密碼 

 


 1.首先我們來熟悉github網站

1.1 注冊github

登錄http://github.com/,然后點擊sign up,來注冊賬戶:

 

注冊好了,以及驗證郵箱后,然后進入github主頁:

 

1.2點擊start a project(啟動第一個項目)

 

1.3創建好后,就會跳轉到剛剛創建好的test2倉庫(項目)主頁,如下兩張圖所示

  • 圖1:

 

  • 圖2:

 

先來介紹下上圖常用的幾個單詞

  • repostory

  倉庫,也就是項目的意思,有多個項目就代表有多個倉庫

  • star

  收藏項目,收藏的數目越多,說明項目越好

  • fork

  將源作者的項目克隆一份到自己的項目中

  • pull request

  拉請求,指如上圖的pull request.

  比如:別人通過fork你的項目后,並改進了項目,向你發送了new pull request請求,

  然后你點擊pull request按鈕,進去后,會出現如下圖所示:

       

  再點擊Merge pull request,則可以將改進的內容合並到自己的項目里,

  • watch

  關注項目,當你關注的某個倉庫更新時,便會通知在你的github主頁上

  • lssues

  問題,點擊進去就可以看到所有人提出的問題,比如項目有bug等.

  當自己想發表問題時,則點擊lssues->new lssues,如下圖所示:

        

1.4接下來,我們點擊倉庫主頁的create new file,來創建一個文件:

 

提交后,便會返回我們test2倉庫主頁里:

 

然后點擊commits提交按鈕,便可以看到剛剛創建main.c的詳細信息:

 

PS:當我們錯誤刪除了一個文件,也可以通過commits按鈕,來找到以前刪除的文件

1.5 學習如何來更改倉庫名稱和刪除倉庫

在倉庫主頁里點擊settings(倉庫設置),如下圖所示(以test3為例):

 

然后便會跳轉到下個界面,就可以更改倉庫名稱了:

 

繼續往下翻,就可以找到刪除倉庫了:

 

2.使用git管理github

2.1安裝git

下載地址:https://www.git-scm.com/download/win

(若慢的話,則進入http://www.wmzhe.com/soft-38801.html下載)

下載好后,直接默認安裝即可,若只喜歡命令行模式,則在組件界面取消git gui here即可,如下圖所示:

 

安裝好后,如下圖所示,即可通過linux命令來操作git命令:

 

若在linux上安裝git,直接輸入:

apt-get install git

(linux下載時,若出現error:403,可以試試vi /etc/resolv.conf,將nameserver地址改為: 114.114.114.114)

 

2.2 配置git

git config --global user.name "lifeyx"               //個人賬號
git config --global user.email 123456@qq.com         //個人郵箱地址

 上面的--global選項,表示以后管理git庫時,默認使用上面的用戶信息,也可以通過git config -l 來查看配置信息

2.3 git命令介紹

1)介紹之前,首先來講解下git的3個區域如下圖所示

 

上圖的git倉庫,是指本地倉庫,不會更新到遠程倉庫(github網頁上的倉庫),需要使用git push -u origin master命令才行

2)然后來講解下git常用命令

git init   

對當前目錄進行git管理,該目錄便會成為工作區,並在當前目錄下會出現個.git隱藏目錄.

該.git里會保存git所需要的數據和資源,也就是git倉庫和暫存區都會保存在.git里

 

git clone https://github.com/lifeyx/test2.git

克隆復制遠程倉庫到當前目錄,生成test2文件夾,里面會自動創建.git目錄,並保存遠程倉庫信息

該遠程倉庫地址通過下圖的紅框里獲取:

 

 

git status

查看工作目錄下文件的狀態,是否add添加到了暫存區,以下圖為例:

 

 

 

git add file

將工作區修改的文件添加到暫存區,也可以使用git add .  將所有修改的文件進行添加

 

git rm file 

將暫存區的文件刪除掉,若工作區文件存在,則需要使用git rm -f file來強制刪除掉

 

git commit -m “提交描述”

將暫存區里的文件提交到本地倉庫,若暫存區某個文件被刪除掉,則會刪除倉庫里的文件

 

git commit -am “提交描述”

-a:跳過暫存區,git自動將工作區里記錄的所有文件添加到暫存區並一起提交,從而跳過git add步驟

 

git reset HEAD^1

撤銷commit,如果想修改commit時的文件,則使用上面命令撤銷

 

git remote add origin https://github.com/lifeyx/test3.git

添加遠程倉庫(origin),也就是關聯本地倉庫和github倉庫,該遠程倉庫地址通過下圖的紅框里獲取:

 

 

git push origin master

推送(同步)數據到遠程倉庫,若是本地上傳,必須先使用上個命令來指定遠程倉庫地址(origin),

若是從遠程倉庫克隆復制的,則不需要,因為.git里會自動保存遠程倉庫地址.

2.4  git管理遠程倉庫-實例1

實例1步驟,通過創建新的遠程倉庫,然后將本地的數據推送(同步)到遠程倉庫里

1)首先創建新的遠程倉庫,以test3為例

 

然后找到遠程倉庫地址為: https://github.com/lifeyx/test3.git

 

2)進入github命令行,輸入

mkdir test3

cd test3

echo "項目描述test3" >> README.md       

git init                       //初始化git

vi 1.txt                       //創建1.txt

git add README.md              //添加README.md     

git add 1.txt                 //添加1.txt

git commit -m "第一次提交文件"   //提交到本地倉庫

git remote add origin https://github.com/lifeyx/test3.git  //連接遠程倉庫地址

git push origin master       //上傳到遠程倉庫地址,並輸入賬號密碼

3)查看結果

 

 

2.5 git管理遠程倉庫-實例2

實例2步驟,就是通過克隆來將遠程倉庫下載到本地,然后本地修改數據后,並推送(同步)數據到遠程倉庫

1)通過以前的遠程倉庫test2為例

如下圖所示,可以看到test2倉庫更新時間都是處於1天前的:

 

然后通過上圖的綠色按鈕,找到test2地址為: https://github.com/lifeyx/test2.git

2)進入github命令行,輸入

git clone https://github.com/lifeyx/test2.git   //下載test2倉庫

cd test2                                       //進入倉庫

vi 1.txt                                       //創建1.txt

git add 1.txt                                  //添加1.txt

git commit -m "第二天提交文件"                   //提交到本地倉庫

git push origin master                     //上傳到遠程倉庫地址,並輸入賬號密碼

PS:

由於git clone會自動生成.git隱藏目錄,所以上面無需git init命令初始化。

而且.git目錄里保存了遠程倉庫地址,所以上面無需git remote命令連接遠端。

3)查看結果

 

 

3.每次上傳到遠程倉庫地址時,都要輸入賬號密碼,是不是很麻煩?

接下來便通過ssh key密鑰,使主機與服務器連接連接, 這樣就不用每次輸入賬號密碼

3.1生成ssh key

首先通過ls ~/.ssh命令,查看是否已有ssh key,若有的話,先備份,然后通過rm -rf ~/.ssh來刪除

1)輸入,創建密鑰

ssh-keygen -t rsa -C "123456@qq.com"    // "..."里輸入郵箱號

2)然后會提示設置密碼,直接連按3個回車,表示密碼為空

3)將新生成的key添加到ssh-agent中

eval  "ssh-agent -s"

ssh-add ~/.ssh/id_rsa

4)若顯示Could not open a connection to your authentication agent.,則繼續輸入

ssh-agent bash

ssh-add ~/.ssh/id_rsa

如下圖所示,出現Identity added字段,則表示寫入成功,ssh key公鑰便保存在id_rsa.pub文件中了:

 

5)然后通過cat ~/.ssh/id_rsa.pub 將ssh key公鑰打印出來,並復制

 

3.2將復制的ssh key公鑰添加到github中

 

跳轉頁面后,title標題隨意寫,將ssh key復制到key框里即可

3.3測試ssh key

輸入ssh git@github.com,如下圖所示,顯示Hi  youname! ,則表示成功了

 

 

3.4成功后,就可以使用git協議來下載倉庫. 還是以test2倉庫為例

1)首先查看test2倉庫的ssh協議的地址(之前是http協議地址)

 

如上圖所示,點擊紅框后, 前綴https://變為了git@

2)然后進入github命令行,來測試

git clone git@github.com:lifeyx/test2.git    //下載test2倉庫

cd test2                                    //進入倉庫

vi 2.txt                                   //創建2.txt

git add 2.txt                             //添加2.txt

git commit -m "第二天提交文件"             //提交到本地倉庫

git push  origin master                 //無需輸入密碼來上傳

 

4.git管理倉庫

打補丁:

git diff > new.patch

如果是當前倉庫有了新文件,想把新文件也打進補丁(新文件必須需要git add之后才行),則輸入:

git diff --cached  > new.patch

 

查看狀態:

Git status   

 

查看本地修改的哪些東西

git diff Makefile      //以查看上圖的Makefile為例

添加暫存區

git add kernel/arch/mips/xburst/soc-x1000/chip-x1000/ap60pro/ap60pro/board.h //添加到暫存區

git add .                             //添加所有修改過的文件

 

撤回修改過的文件

git checkout Makefile            //撤回Makefile的修改,如果是之前不存在的文件,則會撤銷失敗

將暫存區里的文件撤回到 修改文件中

git reset HEAD u-boot/drivers/video/jz_lcd/jz_lcd_v13.c  //將jz_lcd_v13.c從暫存區撤銷掉

提交到本地倉庫

git commit  -m  "ap60pro update: compatible with old and new screens" //添加到本地倉庫(但未上傳)   -m 后面跟提交的信息描述

撤銷commit提交

git reset HEAD^1

同步遠程倉庫(當別人在遠程倉庫進行修改后,本地沒有更新時)

git pull --rebase origin master

上傳遠程倉庫

git push origin master
    //上傳遠程倉庫,由於是使用git clone,所以不需要使用git remote連接遠程倉庫
    //如果git push失敗,打印: error: failed to push some refs to 'git@192.168.1.8:X1000.git',則使用git pull 同步一次

查看提交遠程倉庫的歷史記錄

tig      //如下圖所示:

其中” [master] {origin/master} {origin/HEAD} Merge branch 'master' of 192.168.1.8:X1000”,是使用git pull解決分支不同(Merge branch)時候提交的

 

如果想查看提交的某一次具體信息,也可以使用”git show  [hash值]“來查看

git show示例:

1)通過tig,找到近期提交一次的記錄hash值:

2)使用git show 17c7a097834439d0e9bf659e5e71ce313832c032,便可以查看具體提交的內容了

 

 git pull如果打印error: You have not concluded your merge (MERGE_HEAD exists).時

1. 直接commit,再提交一次,之后再pull或merge就可以順利進行。
2.放棄本地其它修改,直接覆蓋,輸入: 

git reset --hard

git pull

 

查看每一行是哪次提交最后修改的

git blame filename  

 

列出文件的所有修改記錄

git log -p filename   

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM