VS中使用git

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

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

一、克隆linux

從遠程下載代碼步驟以下:打開VS,切換到「團隊資源管理器」,點上方「主頁」右側的下拉三角,選擇項目->鏈接到團隊項目,而後選擇「克隆」,填入Git的Remote Url和要克隆到的本地目錄(該目錄必須爲空),而後點克隆按鈕便可將項目克隆到本地。git

     

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

  只需單擊同步裏面的 提取。緩存

 

 常見名詞解釋安全

拉取(Pull):將遠程版本庫合併到本地版本庫,至關於(Fetch+Meger)bash

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

合併(Meger):將兩個版本庫進行合併操做ssh

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

推送(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以前能夠看清楚 更新狀況  再決定是否合併

 

2、初建項目並push到github上

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

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

同步,推送到遠程倉庫

注:若沒有的這個選項話,也能夠用git bash去操做:

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

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

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

git push -u origin master

 

3、提交代碼

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

 有衝突時,能夠點擊衝突,而後對比文件,選擇使用遠程的代碼仍是本地代碼,而後再次提交。

4、忽略文件

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

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

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

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

5、還原修改

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

在右側便可點還原操做。而後單擊同步,進行同步到遠程便可

6、常見問題

一、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仍是就這樣機制。

二、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倉庫太大,公司限制速度,下載不了

能夠嘗試用 碼雲 去搜下是否有相同的庫

七、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 工做流程

相關文章
相關標籤/搜索