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
開始上傳
- $ git status
- $ git add .
- $ git commit -m "first commit"
- $ 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
每天學習一點點,你就進步一點點。