Git學習日誌(一)

Git學習日誌(一)

來自專欄從零開始|實踐大數據

最近在學習使用Git和Github來託管代碼和筆記,關於這個內容網上有很多帖子,在學習過程中就windows上的實際使用作了一些整合和更新,方便以後查看~

Github註冊

  • GitHub賬號註冊:Build software better, together

  • 登陸並創建倉庫(repositories),倉庫分公開(免費)的和私有(付費)的,一般用公開倉庫就行了

具體步驟:點擊New repository按鈕,彈出如下界面,第一行填倉庫名,就叫個COL,第二行是對這個倉庫的描述,之後那個Public就是公共倉庫的意思,接下來的README就是在倉庫里創建一個README文件,可以往裡寫一些介紹你這個項目的功能之類的東西,再下面那個Add gitignore按鈕,可以選擇你這個項目是用什麼語言之類的,後面那個License我沒有選,點擊」Create repository」。

  • 創建倉庫成功後,界面如下顯示,可以點擊README.md來編譯這個文件

Git Bash安裝與配置

  • git-scm.com/download/下載對應版本的程序並安裝

這一步直接所有默認就行了,就不放多餘的圖了

  • 雙擊Git Bash,打開後界面如下

  • 具體配置方法如下:

ssh-keygen t rsa C 郵箱地址

注意ssh-keygen之間是沒有空格的,其他的之間是有空格的。回車之後,會出現一行,讓你輸入一個保存密鑰的地方,括弧裡面是它默認的位置,這裡會讓你輸入幾次內容,都不用輸入,直接回車就可以了,可以看到如圖的效果:

回車之後,密鑰就生成了,可以打開id_rsa.pub(位置根據你的電腦來看)來查看,使用記事本直接打開這個文件,裡面的所有內容就是這個密鑰,一會需要使用的時候,就直接全選複製就可以了

第一次試的時候沒有known_hosts這個文件,後來按以上操作重試了一次,搞定......

  • 轉到github網站上去配置一下ssh key,點擊右上角三角圖標,選擇Settings,然後點擊左側的SSH Keys,之後點擊右側的Add SSH Key,這樣就會出現添加SSH Key的界面,在Title這一欄填一個名字,名字隨意起,之後打開剛才生成的那個文件id_rsa.pub,全選複製裡面的內容到Key這一欄中,點擊Add Key按鈕完成操作。(你填的郵箱會收到一封確認的郵件,不用管它。)

  • 驗證是否設置成功:在git bash下輸入如下命令

ssh –T git@github.com

按提示輸yes後界面如下:

有時會有一些因為許可權等等原因的報錯,可能是之前設置時提到的known_hosts文件沒有缺失,重複以上步驟或者配置密鑰時改一下地址試試,應該比較好解決。

接下來配置用戶名和郵箱:

git config –global user.name 「用戶名」git config –global user.email 「郵箱」

這裡配置的是全局的用戶名和郵箱

$ git config –global user.name 「github』s Name」$ git config –global user.email 「github@xx.com」$ git config –list

如需進行針對單個倉庫,在項目根目錄下進行單獨配置,命令如下

$ git config user.name 「gitlab』s Name」$ git config user.email 「gitlab@xx.com」$ git config –list

git config –list用於查看當前配置, 在當前項目下面查看的配置是全局配置+當前項目的配置, 使用的時候會優先使用當前項目的配置

項目託管

前面已經完成了GitHub和Git的基本設置,現在學習使用Git來進行項目託管。

之前的操作中我們在GitHub上創建了名為COL的倉庫,在本地創建一個文件夾來管理這個倉庫。

隨意創建一個,然後在該文件夾上右擊選擇Git Bash Here

這個目錄上打開了我們的終端開如圖所示

初始化:

git init

繼續在終端上輸入如下命令,增加對我們github上創建的COL倉庫的管理。

git remote add origin git@github.com:Doubleiron/COL.git

在本地同步一下倉庫的內容,命令如下:

git pull git@github.com:Doubleiron/COL.git

這一步我在做的時候報錯,參考了(轉)Updates were rejected because the tip of your current branch is behind提供的方法,順利解決。

報錯代碼如下:

$ git push -u origin masterTo git@github.com:******/Demo.git ! [rejected] master -> master (non-fast-forward)error: failed to push some refs to git@github.com:******/Demo.githint: Updates were rejected because the tip of your current branch is behindhint: its remote counterpart. Merge the remote changes (e.g. git pull)hint: before pushing again.hint: See the Note about fast-forwards in git push --help for details.

這是因為遠程repository和本地的repository衝突導致的,我在創建倉庫後,在github的倉庫頁面點擊了創建README.md文件的按鈕創建了說明文檔,但是卻沒有pull到本地。這樣就產生了版本衝突的問題。

有如下幾種解決方法:

1.使用強制push的方法:

$ git push -u origin master -f

這樣會使遠程修改丟失,一般是不可取的,尤其是多人協作開發的時候。

2.push前先將遠程repository修改pull下來

$ git pull origin master$ git push -u origin master

3.若不想merge遠程和本地修改,可以先創建新的分支:

$ git branch [name]

然後push

$ git push -u origin [name]

我最後是用allow-unrelated-histories命令解決的

git pull --allow-unrelated-histories git@github.com:Doubleiron/COL.git

  • 在本地目錄隨便創建一個文件test_haha.txt

  • 通過add命令將此文件上傳到GitHub.

提交所有文件:

git add .

提交特定文件:

git add test_haha.txt

  • 後面寫提示信息,提示信息是一定要寫的,不僅是規則,同時也方便我們記錄我們提交的過程,寫清晰為什麼提交或修改了什麼是非常有用的。

git commit –m 「這裡寫下你自己的記錄本次提交內容的信息」

提交完成後,我們把它推送到遠程倉庫上去,命令如下:

git push git@github.com:Doubleiron/COL.git

搞定!!!

  • 差不多可以了,以後每次增加了新文件就先add,然後commit,如果只是改了文件的內容,只執行commit就行了,當然最後一步都是要執行push,把所以改變推送到我們的github上去託管。

git命令好多,下次再整理一下好了。。。


推薦閱讀:

diff 與 patch 的使用
深入理解flutter的編譯原理與優化
網路基本功(十三):細說Linux網路配置(下)

TAG:Git | 科技 | 計算機科學 |