git 命令 (持續更新)

    首先有個問題,基本上所有使用過git命令的人都會有這樣的一個疑問:

    1.你本地的代碼是最新的,在此基礎上修改,(可以使用 git diff 查看修改),這樣的前提下,使用 git pull 爲什麼不會覆蓋本地修改的代碼?換句話說就是: git pull 爲什麼不能撤銷在最新的代碼上做出的修改?(雖然這個問題合乎邏輯,但是需要揣摩)

    這個問題好幾個人都問過我,我是這樣解釋的: git 命令是根據commit ID更新的,這個commit ID就是一系列算法生成的,根據這個反查代碼非常好用,每次 git pull 的時候,會根據commit ID依次拉取代碼,這個commit ID會跟本地的 commit ID 做出比較,如果相同的話,是不會繼續拉取代碼的,這樣如果是最新的代碼,生成的 commit ID 是相同的,所以咯,你本地的修改並不會被覆蓋。

    git 常用命令:

    1.強制撤銷本地操作並切換分支。

     git reset --hard HEAD^^(這個符號代表向前的commit Id數量,0個表示退到上一個commit Id,依次類推)

     git checkout (你的遠程分支名) -B (你打算起的指向這個遠程分支的本地名)

     這樣就強制切換過來了

     2.查看代碼修改

     通常我們需要查看誰對代碼做了修改,並諮詢相關人事這樣做的原因:

     git blame (你想查看的文件) | grep '(粘貼你想查看代碼那行的其中一部分)',然後終端會顯示這個commit Id,以及詳細信息。

     git show (剛纔看到的commit Id) 查看具體的代碼修改

     3.保存工作狀態(有時候需要保存對當前分支的工作狀態,然後切換到另外的分支上操作緊急的內容)

     git stash save (寫你的註釋) 保存當前工作狀態到隊列裏

     git stash list 查看當前所有保存的工作狀態

     git stash apply (你的隊列名字) 恢復現場 (這裏需要說明的是 apply時注意分支問題,分支不對會報錯)

     4.刪除遠程分支

     git push param1(遠程主機名) --delete param2(遠程分支名字)

     eg:git push origin --delete branch1

     5.重置git遠程倉庫地址

     git remote set-url param1(遠程主機名)  param2(git地址) 

     eg:git remote set-url origin (從遠程項目複製的那個地址)

     6.本地分支和遠程分支建立聯繫

     git branch --set-upstream-to param1(遠程主機/遠程分支名字) param2(本地分支,省略的話,就是當前分支)

     eg1:git branch --set-upstream-to origin/branch1 :本地當前分支和遠程branch1建立聯繫

     eg2:git branch --set-upstream-to origin/branch2 branch2 :本地分支branch2和遠程分支branch2建立聯繫

       

發佈了29 篇原創文章 · 獲贊 7 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章