1. 程式人生 > 其它 >Git命令使用總結

Git命令使用總結

1,在需要上傳git目錄下,右鍵選擇Git Bash Here

2,幾個主要的命令如下:

  • 步驟

    • git init
    • git add .
    • git commit -m'程式碼描述'
    • git remote add origin 遠端倉庫地址
    • git branch xxx # 建立新分支
    • git checkout xxx # 轉換到新建分支下,也可以一步到位 git checkout -b xxx
    • git push -u origin xxx
  • 補充:

      git branch  # 檢視分支

舉例說明:

1.本地建立名為“dev”的分支:

  $ git branch dev
2.本地由master主分支切換名為“dev”的分支

  $ git checkout dev
3.本地“dev”分支與遠端倉庫上的“dev”分支連線:

  git branch --set-upstream-to origin/dev dev
如遇error

輸入如下的命令:

  $ git fetch origin dev

開始上傳

  1. $ git status
  2. $ git add .
  3. $ git commit -m "first commit"
  4. $ git push origin dev

遇到問題:

Git :fatal: refusing to merge unrelated histories解決
今天本地建立了一個倉庫(有README),把本地倉庫和Github上關聯以後,發現git pull,git feach提醒fatal: refusing to merge unrelated histories

解決方案

在你操作命令後面加–allow-unrelated-histories
例如:git merge master --allow-unrelated-histories

  git pull --allow-unrelated-histories

或者git pull origin master --allow-unrelated-histories / git pull --allow-unrelated-histories

error: Pulling is not possible because you have unmerged files

git pull的時候出現如下的錯誤:

錯誤:無法提取,因為您有未合併的檔案。

解決方案一(不推薦):
本地的push和merge會形成MERGE-HEAD(FETCH-HEAD), HEAD(PUSH-HEAD)這樣的引用。HEAD代表本地最近成功push後形成的引用。MERGE-HEAD表示成功pull後形成的引用。可以通過MERGE-HEAD或者HEAD來實現型別與svn revet的效果。將本地的衝突檔案沖掉,不僅需要reset到MERGE-HEAD或者HEAD,還需要–hard。沒有後面的hard,不會沖掉本地工作區。只會沖掉stage區

git reset --hard FETCH_HEAD

git pull
上面的解決方法非常非常的霸道,是可以解決這個錯誤,但是它會回到初始的節點,假如我有修改原生代碼但是沒有提交,那麼使用reset初始,可能會丟失這些修改的程式碼。

在正式環境中不建議這樣做,在這裡我給大家道歉,給大家造成不必要的損失,對不起

下面給大家介紹一種正確的解決方案
//註釋:提交原生代碼到工作區
//註釋:如果有衝突,先解決衝突合併程式碼,然後提交
//註釋:如果程式碼上沒有衝突,但是提交的時候git提醒有衝突,那麼先關閉編輯器,然後編譯程式碼找到衝突,最後手動合併程式碼解決衝突
  git add .
  git commit -m '提交原生代碼並且獲取最新程式碼'
//註釋:獲取源dev分支最新程式碼
  git pull origin dev
//註釋:如有衝突就解決衝突
這裡一定要注意,自己本地修改的程式碼要麼提交要麼隱藏後再獲取,最好不要直接用reset



每天學習一點點,你就進步一點點。