【Git】Git相關筆記

很開心這次跳槽到了新公司,終於開始學習到系統的團隊相關軟體,在這裡記錄業務上碰到的所有git相關指令,也期許自己的技能能夠不停止的進步下去!

強制用遠端代碼覆蓋本地代碼

實際情況是在公司的幫助下開始使用Mac電腦 但是回去以後又使用了自己的電腦,而最新進度已經push到遠端分支
因此會有需求是要將本地代碼更新至遠端同步(注意這裡是強制覆蓋本地端)

1.git fetch --all //從遠程拉取最新的代碼 不合併

2.git reset --hard origin/分支名 //使用指定分支代碼 強制覆蓋代碼

3.git pull //從遠程拉取最新的代碼自動合併

當本地沒有想要拉取的分支,想直接拉取遠端的分支,且分支名相同

情況是這次專案中擔任的角色只是幫忙review代碼,以及UI等等, 也就是我的本地當實際上是沒有任何分支的,
而對方有在遠端上建立並也上傳了進度,這時候我想要在本地也新增和遠端一樣的分支, 好隨時pull下來查看目前進度

git checkout -b 本地分支 origin/远程分支
/*---b 本地沒有的分支會自己建一個--*/

刪除分支

記得先切換到非刪除的分支上才可以刪除該分支
本地

git branch -d <branch>

如果是遠程分支

git push <remote> --delete <branch>

在還沒push之前撤銷commit

主要的指令是使用 reset 但是根據後面參數的不同,而有稍稍不同的結果。參數分別是

  1. –mixed <= 是預設的參數, 回到上一次提交後的修改後的還未git add後的結果,相當於git reset --soft後加上git reset hard …
  2. -soft <= 只取消 commit 但保留文件的修改
  3. –hard <= 代碼恢復到前一commit_id 對應的版本
# 首先找到對應的commit id
git log
# 完成Commit命令的撤銷,但是不對代碼修改進行撤銷,可以直接通過git commit 重新提交對本地代碼的修改
git reset –hard id

捨棄合并,重新pull

情況是這樣, 當我們發現遠端的別的分支(當dev、uat、個人分支各自獨立時)有更新時, 而自己的分支也需要跟著遠端別的分支進行同步時, pull 完以後發現想要重新來但是會出現問題
或是當遇到 error: You have not concluded your merge (MERGE_HEAD exists).
也可以使以下步驟解決

# 保留本地的更改 , 中止合并
git merge --abort 
# git reset --merge
git reset --merge
# 重新拉取
git pull

另外一種則是捨棄本地端的所有更改,讓遠地端版本覆蓋本地當版本 (!!慎用)

git fetch --all
git reset --hard origin/master
git fetch

救回不小心使用 hard 模式 Reset 了的 Commit

情況是有次將版本推送到dev環境時忘記將分之切回到個人的分支, 於是就在dev分支的情況下做了更動,後來commit以後發現了這個問題, 當時想用簡單的方式把現在的代碼進行備份然後使用git reset –hard .
悲劇的事情來了不知道怎麼回事備份沒備份好, 心急如焚的上網尋找解決方法

Git 裡有個 reflog 指令有保留一些紀錄。

$ git reflog
657fce7 (HEAD -> master) HEAD@{0}: reset: moving to HEAD~2
e12d8ef (origin/master, origin/HEAD, cat) HEAD@{1}: checkout: moving from cat to master
e12d8ef (origin/master, origin/HEAD, cat) HEAD@{2}: checkout: moving from master to cat

當 HEAD 有移動的時候(例如切換分支或是 reset 都會造成 HEAD 移動),Git 就會在 Reflog 裡記上一筆。從上面的這三筆記錄看起來大概可以猜得出來最近三次 HEAD 的移動,而最後一次的動作就是 Reset。所以如果想要取消這次的 Reset,就是「Reset 到它 Reset 前的那個 Commit」。在這個例子就是 e12d8ef,所以只要這樣:

git reset e12d8ef --hard

還好有找到解決方法不然一整天的辛苦要白費了!!

修改文件名稱 大小寫

git對於檔案的修改尤其只是修改大小寫很難偵測得到 , 需要直接用指令告訴他修改的結果

## 從text.text 修改為 Test.text
git mv test.txt Test.txt

以上不定時更新

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值