Coding 代碼管理快速入門
當項目創建好了之后,我們該如何上傳代碼到 coding 上呢?
Coding 網站使用“ Git 倉庫”(類似 github )來管理代碼。
其操作原理在於:利用 git 服務,將本地的項目目錄下的文件同步到 coding 的“ Git 倉庫”
本文主要包含如下內容:
- 命令行上傳代碼
- 圖形界面上傳代碼
- 常見問題
注:以下演示均在 windows8 系統上進行
- 若在創建項目時,不選擇“啟用 readme.md 文件初始化項目”,“開源許可證”和“ gitignore 文件 ”這三個選項(當然我們不建議這么做)。點擊“代碼”選項,你會看到如下代碼管理界面:
你會看到代碼的訪問 url (如圖紅框所示,https 方式),即 git 地址(不要用瀏覽器去訪問哦)。然后你可以根據它,在 windows 的 cmd 中輸入代碼,來創建項目的“ Git 倉庫”。
1. 命令行上傳代碼
安裝 git
先從 git 官網( http://git-scm.com/downloads )上下載 git 並安裝到 C 盤.然后將 git 目錄下的 bin(如 C:\Program Files (x86)\Git\bin )添加到 PATH 環境變量。
右擊 ThisPC > properties > Adavanced system settings > Environment Variables
選擇 PATH, 點擊 Edit(如紅框所示)。將 bin 的路徑( C:\Program Files (x86)\Git\bin )添加到變量值后面
然后你就可以在 cmd 中使用 git 命令了。
創建新項目上傳
cd parent_dir //進入項目父目錄
mkdir gitDemo //創建項目目錄 gitDemo
cd gitDemo //進入項目目錄
git init //初始化空的 git 倉庫
touch README.md
git add README.md //這兩行添加簡單的 README.md 文件
git commit -m "first commit" //提交時附加的信息
git remote add origin https://coding.net/codingTutorial/gitDemo.git //添加一個名為 origin 的遠端( url 為 git 地址)
git push -u origin master //將該目錄下的文件推送到遠端(origin)上的 "master" 分支
也許你會遇到如下問題:
這是因為你沒有配置你的用戶名和郵箱,可以在 cmd 中輸入上圖紅框中標出的命令。
然后輸入用戶名和密碼(如紅框所示)。用戶名為登錄 conding 時的個性后綴或郵箱,密碼也是登錄時的密碼。
上傳已有項目或更新的項目
cd existing_git_repo //進入已有項目或更新的項目目錄
//若該項目目錄未建立 git 倉庫,則需用 READM.md 初始化 git 倉庫,詳見“創建新項目上傳”
//若有git倉庫則直接添加遠端倉庫上傳
//如果目錄下有文件沒有被追蹤(未與遠端倉庫同步),可以使用“ git add 文件名” 和 “ git commit -m "message" ”,來添加追蹤文件
git remote add origin https://coding.net/codingTutorial/gitDemo.git
git push -u origin master //這兩行將該目錄下的文件推送到遠端(origin)上的 "master" 分支
同樣,對於后續更新的提交也同樣可以按照這樣的方式,即進入項目目錄,配置遠端,推送代碼。
2. 圖形界面上傳代碼
(1).安裝必要軟件
- 下載 msysgit ( 如果已安裝則不必 ) 並安裝( http://msysgit.github.io/ ):
安裝時一路默認點到底。
- 安裝 TortoiseGit
64位: http://www.onlinedown.net/softdown/101592_2.htm
32位: http://www.onlinedown.net/soft/101591.htm
同樣, 安裝時一路默認點到底。
(2).配置、使用 TortoiseGit
1. 建立版本庫
在任意空的文件夾點擊鼠標右鍵,選擇“ Git 在這里創建版本庫”
2. 將 Git 倉庫的代碼 pull (拉取)到本地目錄
3.管理遠端:
點擊紅框內的 label
4.配置遠端
只需配置好遠端(Remote)的名字(如 origin )和 URL(git 地址)即可
配置完遠端,點擊“ ok ”即可。
若是公開項目,無需輸入用戶名和密碼。若是私有項目,則需輸入用戶名和密碼。用戶名為登錄 conding 時的個性后綴或郵箱,密碼也是登錄時的密碼
或者可以直接使用clone命令。新建空文件夾,右擊clone即可。選擇好本地文件夾路徑和遠程倉庫的url即可
注意:若是遠程目錄為空,則沒有master分支。不可以使用pull命令。應使用clone
5.clone克隆
在本地文件夾的空白位置處,右擊鼠標,在菜單中選擇【Git克隆】:
把git 路徑填寫到URL,並選擇本地文件目錄,點擊【確定】,彈出下載進度窗口。(服務器端至少要有一個文件,否則 pull的時候會報錯 fatal: Couldn't find remote ref HEAD)
克隆成功,則在文件夾上就可以看到角標標識:
- Git文件上角標符號說明:
文件上的圖標,可以反映出當前文件或者文件夾的狀態:
1、正常的:綠色的對號
2、被修改過的:紅色感嘆號
3、新添加的:藍色的加號
4、未受控的(無版本控制的):藍色的問號
5、忽略不受控的:灰色的減號
6、刪除的:紅色的x號
7、有沖突的:黃色的感嘆號
- 若是看不到可以查看該教程:TortoiseGit狀態圖標不能正常顯示的解決辦法
(**3). 將代碼提交到服務器
Tortoisegit 將代碼提交到服務器
使用示例
Git的使用類似TFS、SVN等源代碼或者文件管理器,慣例的流程:
0. 建立版本庫
在任意空的文件夾點擊鼠標右鍵,選擇“ Git 在這里創建版本庫”
[](
1:改動,
修改本地項目中的某些文件,如修改 README.md 內容,還可以增加一些文件, 如Hello.txt。
若在項目目錄里創建新的文件,則該文件必須“ commit ”一下,否則 push 操作可能會失敗。例如,添加一個名為“ addFile.txt ”文件
具體步驟如下:
先選中文件右鍵選擇“ add ”。如下圖紅框所示。
[](
2:提交本地
在本地項目的空白處點擊鼠標右鍵,選擇 【Git提交(C) -> "master"...】
3.提交(Commit)設置。
在彈出提交(Commit)對話框中完成提交說明信息,和選擇需要提交的文件,可根據需要新建分支,然后點擊 【提交】 按鈕,將修改提交到本地倉庫:
4.PUSH(推送)
彈出提交進度窗口,提交成功后還需要“推送”將本地倉庫的修改推送到遠程倉庫。
將提交到本地倉庫的修改推送到遠程倉庫,可以直接在提交成功后的提示窗口上點擊【推送(H)...】,或者在Git同步窗口點擊【推送(H)...】,鼠標右擊的菜單上也有相應的快捷操作:選擇 【TortoiseGit(T)】→【推送(H)...】
選擇 【TortoiseGit(T)】→【推送(H)...】彈出推送(push)對話框:
一般保持默認,點擊 “確定” 按鈕
然后彈出推送進度界面,可能要求你輸入用戶名,點擊【確定】,然后要求輸入密碼,密碼輸入正確后,顯示推送成功界面:
如果你按照上一小節Tortoisegit 配置的設置操作,則輸入密碼以后會記住密碼。密碼會明文保存在C:\Users\用戶名.git-credentials 這個文件中,請小心保存。
5:同步拉取,
在實際工作中,如果多人協作或者多個客戶端進行修改,那么我們還要拉取別人推送到在線倉庫的內容,所以在推送之前需要先執行同步拉取(Pull ...)操作。
在本地倉庫文件夾上【右擊鼠標】→【Git同步】:
打開Git同步窗口(包括常規操作及日志,同右擊菜單快捷操作一樣),點擊【拉取(P)】,將遠程分支拉取到本地:
如果服務器上的文件沒有被修改過,就會直接提示已經更新到最新,那你就可以直接進行下一步“推送(H)”操作了:
反之,如果服務器上的文件被修改過了(本地文件修改前不是最新版本),就會提示沖突。先要解決沖突,然后再提交結果:
需要注意的是,和使用TFS、SVN的習慣一樣,你在修改本地內容之前,最好先 拉取(pull)一下,減少沖突的可能。
3. 常見錯誤
上傳代碼時,你可能會遇到如下錯誤:
這是由於提交的本地代碼的版本低於 coding 的“ Git 倉庫”,所以你要先將“ Git 倉庫”的 pull (拉取)到本地,這樣本地代碼版本就可以比“ Git 倉庫”的高了。就可以成功 push。
以上只是簡單介紹,關於 Git 具體的原理和操作,請參閱:
Pro Git: http://git-scm.com/book/zh
小結
以上就是海龜Git常規的操作流程,git的功能很強大,相應的命令也很多,使用圖形界面把Git的操作簡化了確是大大的方便。除了小海龜還有 Source Tree,也是開源且好用的Git GUI管理工具,待得有空小編再整理一份Source Tree的操作教程。補充一點,因為很多項目是在VS上進行開發的,所以更多的情況,我們不會去使用文件夾上的操作,而是結合VS的git模塊來進行操作,查看VS2017中使用Git進行版本控制。
推薦廖雪峰的Git教程。