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安裝與配置
- 從http://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網路配置(下)