VS中使用git


一、克隆遠程倉庫已有分支

  當作為一個新成員參與別人已經建好的項目中,此時遠程已經有有一些分支了。

1、克隆

從遠程下載代碼步驟如下:打開VS,切換到“團隊資源管理器”,點上方“主頁”右側的下拉三角,選擇項目->連接到團隊項目,然后選擇“克隆”,填入Git的Remote Url和要克隆到的本地目錄(該目錄必須為空),然后點克隆按鈕即可將項目克隆到本地。

     

2、本地拉取遠程的一個新分支

  只需單擊同步里面的 提取。

 

 常見名詞解釋

拉取(Pull):將遠程版本庫合並到本地版本庫,相當於(Fetch+Meger)

獲取/提取(Fetch):從遠程版本庫獲得最新版本

合並(Meger):將兩個版本庫進行合並操作

提交(Commit):將所做的更改,存入本地暫存庫

推送(Push):將所做的更改,存入遠程版本庫

同步(Pull+Push):先將遠程庫拉取,再將本地庫推送到遠程庫,相當於(Pull+Push)

變基到(Switch):切換分支(雙擊即可切換)

 

git  pull     從遠程拉取最新版本 到本地  自動合並 merge            git pull origin master。。即:git pull = git fetch + git merge,這樣可能會產生沖突,需要手動解決。

git  fetch   從遠程獲取最新版本 到本地   不會自動合並 merge    git fetch  origin master       git log  -p master ../origin/master     git merge orgin/master

實際使用中  使用git fetch 更安全    在merge之前可以看清楚 更新情況  再決定是否合並

 

二、初建項目並push到github上

1、在遠程Github等服務器新建一個空Repositories,這里起名GitTest。

打開VS2013,新建項目GitTestProject,右鍵單擊解決方案,選擇“將解決方案添加到源代碼管理器”,選擇Git

同步,推送到遠程倉庫

注:若沒有的這個選項話,也可以用git bash去操作:

連接遠程倉庫,在本地的命令框中輸入下面的命令,即連接到了名為poster的倉庫上

git remote add origin https://github.com/xxxx/yyy.git 

把本地項目推送到遠程倉庫:

git push -u origin master

 

三、提交代碼

  暫存想提交的文件,不想提交的右鍵暫存。提交臨時文件,拉取再推送。

 有沖突時,可以點擊沖突,然后對比文件,選擇使用遠程的代碼還是本地代碼,然后再次提交。

四、忽略文件

  把某些目錄或文件加入忽略規則,后發現並未生效,原因是.gitignore只能忽略那些原來沒有被追蹤的文件,如果某些文件已經被納入了版本管理中,則修改.gitignore是無效的。

那么解決方法是先把本地緩存刪除:

git rm -r --cached .
將本地代碼重新加入
git add .

不想提交的文件,最好一開始提交 之時 就不要提交到遠程。

五、還原修改

  如果提交了一次代碼到遠程,然后發現想撤銷上次提交,即想要還原修改,轉到修改還原的代碼處,單擊方法引用處的

在右側即可點還原操作。然后單擊同步,進行同步到遠程即可

六、常見問題

1、Git Push Error: dst refspec xxxx(分支號) matches more than one.

最近工作中遇到這樣的問題,使用的是Git做版本控制,在PUSH代碼的時候,出現如下錯誤:

  1. error: dst refspec XXX matches more than one.
  2. error: failed to push some refs to 'git@xxx.xx:xxx.git'

初步一看,還想,怎么可能,出現兩個相同的分支?表示很不解。
查看Git服務器上的分支也只有一個指定名稱的分支,最后無意間發現服務器上有一個和分支名稱相同的tag,按照項目組的習慣,tag一般都是以時間作為名稱的,這里怎么會出現這個,好奇中刪掉它重試,果然,Git把tag和分支搞在一起了,tag名稱不能和分支名稱完全相同,不知道這是Git個別版本的bug還是就這樣機制。

2、git中進入帶有空格的目錄下的解決辦法

   比如,要進入Program Files目錄下,有兩種方法:

  • 將Program Files目錄用引號引起來。

  $ cd "Program Files"

  • 將空格處使用空格引號

  $ cd Program" "Files

3.Git clone 錯誤 | error: RPC failed; curl 56 OpenSSL SSL_read: SSL_ERROR_SYSCALL, errno 10054

詳細見

4.Permanently added the RSA host key for IP address '192.30.255.113' to the list of known hosts.

為IP地址192.30.255.113的主機(RSA連接的)持久添加到hosts文件中。

詳細見

5.Windows下git出現Permission denied的解決辦法

本地git bash 使用git clone git@github.com:***.git方式下載github代碼至本地時需要依賴ssh key,遇到權限不足問題時一般都是SSH key失效或者SSH key不存在,重新創建SSH key一般就可以解決問題;

詳細見

6.Github倉庫太大,公司限制速度,下載不了

可以嘗試用 碼雲 去搜下是否有相同的庫

7、Git每次push都需要輸入用戶名和密碼

問題:
已經添加了 SSH key,但是 push 的時候,需要輸入,用戶名和密碼

原因:
出現這種情況的原因是我們使用了http的方式clone代碼到本地,相應的,也是使用http的方式將代碼push到服務器。

git clone https://github.com/xxxxx

這就容易導致這個問題的出現。而如果采用ssh方式的話,是這樣clone代碼的:

git clone git@github.com:xxxxx

解決辦法:

將http方式改為ssh方式即可。

1.先查看當前方式:git remote -v

2.把http方式改為ssh方式。先移除舊的http的origin:git remote rm origin

3.再添加新的ssh方式的origin:git remote add origin git@github.com:xxxx/linux-system-programming.git

4.改動完之后直接執行git push是無法推送代碼的,需要設置一下上游要跟蹤的分支,與此同時會自動執行一次git push命令,此時已經不用要求輸入用戶名及密碼啦!

git push --set-upstream origin master

 

 

 參考:

VS2013中使用Git建立源代碼管理

VS2015 Git 源碼管理工具簡單入門

使用Git進行協同開發Git 工作流程

 


免責聲明!

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



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