最近使用sourceTree 來實現版本控制,有之前的SVN版本控制到現在的git版本控制,其中的一個難點就是,但是往往在使用的過程中會出現一些問題,又時候回push不上去,pull不下來,今天在這裡詳細的整理一下。

英漢對照,看清上面的圖示:

Mac中文版

 

window英文版

當點選提交commit的時候, 會要求填寫github的郵箱密碼,然後點選提交,但是這個時候只是提交到了本地倉庫,點選推送push的時候是提交到遠端倉庫。

注意:git的commit是從本地的工作副本本地的分支,都是在本地操作的。而SVN的commit是從本地推動到遠端(服務端)

當點選拉取pull的時候出現如下提示:

it -c diff.mnemonicprefix=false -c core.quotepath=false pull local-server-aggregator develop
/opt/gitlab/embedded/service/gitlab-shell/bin/gitlab-shell:3: warning: Insecure world writable dir /usr in PATH, mode 040777
From 192.168.0.200:weitoo/server-aggregator
 * branch            develop    -> FETCH_HEAD
Updating b0c5c94..40cef3b
error: Your local changes to the following files would be overwritten by merge:
    server/conflict.file
Please, commit your changes or stash them before you can merge.
Aborting
這種提示表示:需要暫存本地的程式碼,才能拉取到伺服器上新的程式碼
  • 點選暫存(英文版:Stash),隨便起一個名字,裡面存的都是距離上次伺服器版本到本地修改之間的差異,千萬別刪掉了,合併成功無誤了再刪掉。

  • pull拉取伺服器程式碼,這個時候,本地的程式碼變成了伺服器上的程式碼。

  • 點選暫存>應用暫存區 ,這個時候是把之前的修改合併到本地上,這個時候會提示衝突。