Git實戰:創建本地版本庫並將本地項目推送到Github


剛剛寫完了一款chrome-extension:Copy with URL(將選中文字復制為超鏈接文本),隨即滿心歡喜地想盡快把它分享出去。按以往的習慣,我會手工把它托管在Github上。但這次,我想玩點高端的操作,用命令代替低效的手工操作。我貌似在工作方式的效率上有着強迫症般的高要求,這有時也讓我無法關注工作本身,很苦惱。

我一開始誤以為Git就是Github的命令行操作方式,然而當我去Github查看剛創建的版本庫時,一臉尷尬。使用Git將本地項目同步到Github大體上需要兩步,創建本地庫和添加遠程庫。

這里用到的工具是Windows平台下Git的組件之一-Git Bash。操作步驟主要參照了廖雪峰的Git教程,該教程對Git的功能和操作進行了實用講解。用作者的話說,就是淺顯易懂,由淺入深。所以,這里我不嘮叨原理,只記錄操作。

1. 創建版本庫

1.1 准備工作

 打開Git Bash,命令行界面的樣子:

使用你的名字和郵箱為本機在Git系統上注冊身份:

$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"

不寫"Your Name"或"email@example.com"則可以查詢本機身份。

1.2 創建一個文件夾

cd 到你心儀的目錄,創建一個空文件夾作為本地倉庫,進入到新建文件夾中:

$ cd d:/Develop/Git $ mkdir Copy_with_URL $ cd Copy_with_URL

注意:本地倉庫的命名不能含有空格,否則不會創建一個名稱包含空格的文件夾,而是創建多個文件夾;路徑和文件夾避免使用中文,以防不測;直接進入一個已經包含文件的文件夾也是可以的。

1.3 初始化倉庫

將平凡的文件夾變身為Git可以管理的倉庫:

$ git init

空倉庫初始化成功后,倉庫內會新添一個.git文件夾,如果該文件夾被隱藏,可以用 $ ls -ah命令查看。不要去招惹該文件夾,它是用來跟蹤管理版本庫的,有了它才讓平凡的文件夾不平凡。

命令行提示符看着也更高檔了些,變成如下形式:

 

YHB@DESKTOP-U4VUBSM MINGW64 /d/Develop/Git/Copy_with_URL (master)

1.4 添加文件

創建或拷貝項目的代碼文件到Copy_with_URL, $ git status 可以查看當前的版本庫狀態。

將文件添加到倉庫:

$ git add codeA.c codeB.c

此時的文件被添加到倉庫暫存區。

多個代碼文件用空格分隔,如果需要將倉庫目錄下全部的文件添加到倉庫,可以使用命令 $ git add . 。


 意外:在添加文件的時候,命令行竟然提示一類警告:

warning: LF will be replaced by CRLF in background-cp.js. The file will have its original line endings in your working directory.

解決意外往往是最耗時間和精力的,反復琢磨了幾遍git如何避免”warning: LF will be replaced by CRLF“提示?中@Andy Deng的回答,大致了解到這是Windows特有,關乎代碼文件換行符格式的一類警告。

出現此警告是由於配置文件中的設置 core.safecrlf=true 而 core.safecrlf=false ,且文件中的換行符不滿足格式統一的要求所致,命令 $ git config --global core.autocrlf[core.safecrlf] 可以查看指定參數的值。

但實際上無需擔心該警告,因為這是一個正確的配置。此警告說明Git已經為用戶采取了解決方案,但不會改變你的源代碼文件。

除此配置外,通過閱讀 git-config 文檔理解 Git 如何使用autocrlf、safecrlf、eol和.gitattributes處理line-ending建議Windows平台下正確的配置應遵循這三步:

  1. 添加.gitattributes
  2. 將safecrlf設置為true,命令 $ git config --global core.safecrlf true 
  3. 將autocrlf設置為true,命令 $ git config --global core.autocrlf true 

按作者所說,如果將core.safecrlf值為true的話,Git對待有問題的源代碼,可能就不會采取任何措施,而是扔給你一個致命錯誤(fatal),然后拒絕文件添加請求。所以上述配置應該是一種嚴格的正確配置,此時如果源代碼換行符格式一旦不滿足要求,還需要用戶自行使用dos2unix工具來將LF轉換為CRLF。

1.5 提交文件到倉庫

$ git commit -m "comment"

 git commit 命令將 git add 添加到暫存區的代碼一同提交到倉庫,輸出本次提交的改動信息,這時你可以放心的將項目交由Git來管理了。 -m 后面輸入的是本次提交的注解,強烈建議輸入有意義的注解,這樣你就能從歷史記錄里方便地找到改動記錄。

2. 添加遠程庫

懶得自己寫了,Git的使用--如何將本地項目上傳到Github第五步開始圖文詳解了具體的操作過程,整個流程也沒遇到什么意外。

3. 疑惑

將兩個不同的本地倉庫推送到同一個Github會如何?

如果復制一份倉庫副本,哪一個才是master?

 

這里欠一個總結。

版本回退,分支管理這些內容用到的時候,再做補充。

 

參考資料

Git教程

git如何避免”warning: LF will be replaced by CRLF“提示?

通過閱讀 git-config 文檔理解 Git 如何使用autocrlf、safecrlf、eol和.gitattributes處理line-ending

Git的使用--如何將本地項目上傳到Github

 


免責聲明!

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



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