Git代碼托管
1 准備材料
-
在coding,github這些代碼托管網站上申請一個賬戶。
-
Linux平台什么需要一個git,如ubuntu 需要 $ sudo apt-get install git,Windows平台需要下載一個Git環境。
我申請的是coding,github雖然人數比較多,但是網速 很慢,而且有的時候某個地方網絡就不好使了,可能github用了某個機構的服務器,而這個服務剛好被中國牆了,為了保證通暢和速度,國內的coding還是滿足要求的。
要我理解,coding,Github這些代碼托管,都遵循Git的協議。這些網站只是提供服務器和接口。用Git的命令去訪問這些coding,github這種代碼托管的服務器。
我以coding為例來記錄一下,我的配置。
2 建立倉庫
2.1申請倉庫
在coding的網站上需要建立一個倉庫,這個倉庫用來存儲項目代碼,建立項目好像就是簡歷倉庫。建立完倉庫的時候,會得到一個網址,這個網址后綴以.git結尾,需要記住這個倉庫網址。
創建項目之后,進入到這個項目的代碼列表里,得到一個這樣以git結尾的網址 https://git.coding.net/coarlqq/V01_F2808.git
這個網址非常重要,后面在終端(windows是cmd)中要用。
我這幾天研究的是HTTPS協議下的,SSH協議還沒有研究,到時候用熟練之后看看SSH。
2.2 本地建立倉庫
在網站上建立倉庫之后,就要在本地建立對應的倉庫(一個文件夾),這個倉庫可以是你的工程的工作空間,也可以是你建立的新文件夾,最好還是代碼的工作空間,Git最大的好處就是可以檢測到只被改動的代碼,每次更新之后push到服務器上是被改動的代碼,也就是會對文件的版本進行檢測。
我這里把我的DSP開發環境的CCSv7的工作空間作為本地倉庫和服務器進行同步。路徑/home/delvis/workspace/CCSv7/,里面有我開發的工程代碼。
S1:打開終端,切換到建立本地倉庫的路徑,那么我就要輸入:
cd /home/delvis/workspace/CCSv7
S2: 在該路徑下簡歷一個說明文檔,README.md文件,用來說明項目的的介紹之類的。
touch README.md
S3: 初始化倉庫
git init
到此為止我們就建立了一個本地的倉庫。
2.3 本地倉庫和遠程倉庫建立連接
新建立的遠程倉庫沒有任何的代碼,現在就需要把本地庫和遠程倉庫建立連接,完成本地倉庫和遠程倉庫的上傳和下載,以及更新等等。
S1: 使用git的add命令將待傳的文件加入到上傳列表。第一次的時候先不要傳那么多,先傳README.md單個文件。
git add README.md
S2:更新說明(每一次修改都有個commit說明這個東西,你需要對這個說明進行修改,改一點點也可以,如果不該就沒辦法上傳)
git commit -m "first commit"
S3:建立遠程連接,后面從https開始就是你在第一節申請的git那個網站。
git remote add origin https://git.coding.net/coarlqq/V01_F2808.git
S4:使用push命令上傳剛才加入列表的文件
git push -u origin master
S5: 如果是私有項目的話,需要按照提示輸入用戶名和密碼。如下圖所示,為從頭到位的幾個命令。
推送了README.md文件之后,我們進入到coding的網站上,查看該項目的代碼,就可以看到我們上傳的md文件了。
2.4 批量上傳整個文件夾
上一步通過remote命令和遠程庫建立了連接,數據都存儲在本地.git文件夾里面,下一次在對該倉庫操作的時候就不需要進行remote連接,只需要commit和push兩個命令,但是如果以后你在遠程庫對項目進行了名字的修改,就需要按照上面的方法重新配置。
如何上傳整個文件夾呢?
S1:添加整個文件包含文件夾內部文件所有的。(注意add 和 .之間有空格 add . 不是 add.)
git add .
S2:修改發布聲明,命令一旦啟用,就會自動調入VI編輯模式,
git commit -a
這個聲明必須有改動,否則不能上傳,就算你改一個字符都是可以的, 輸入i進入編輯模式,隨便打一個字符然后按ESC進入命令模式,輸入英文狀態下的冒號:,輸入wq,之后保存且退出。這時候所有待上傳的文件都被選中了,這個時候git會自動檢測本地和遠程倉庫代碼版本的不同。
S3:上傳剛才被add標記的文件
git push -u origin master
同樣會讓你鍵入用戶名和密碼。
然后就自己就開始上傳了。
回到網站上,就可以看到剛才上傳的代碼。
3 下載代碼
使用clone命令下載已經上傳的代碼(更新到新的目錄,如果是原目錄就不要clone了)
git clone https://git.coding.net/coarlqq/V01_F2808.git
也可以指定路徑:
git clone https://git.coding.net/coarlqq/V01_F2808.git /home/delvis/什么什么路徑
如果是本地倉庫使用git pull origin master
同步,master
是分支,會自動從服務器上更新,如果本地版本高於當前版本是不能pull成功的,只能重新clone到一個新的路徑。