【跳坑指南-git】
本篇是給使用過git的人高階用的,沒有使用過
git pull, git push, git remote
的人請繞過,看了也沒啥用
(話說的太直接了,哈哈)。
git push
就是把自己的提交推送到伺服器上。雖然兩個命令很簡單,但是其中還會有很多人遇到麻煩。不明白其中的原由,出錯了也摸不著頭腦。
當然我也是進過坑的。
a:老闆,我已經提交**了,但是
git伺服器一直提示
can』t merge。
老闆:你提交前用git pull拉取更新了嗎?
a:我拉了
#說這三個字的同學不在少數啊。哈哈
老闆:你確定你拉了?用的git pull && git push命令嗎?中間沒有
sleep
幾十秒?
a:我沒有做其他操作,沒有停留,拉了之後直接提的 (
#沒拿衛生紙嗎?哥們)
老闆:奧,我來幫你看看
老闆都操作了這些:
圖中紅色標註的部分就是命令以及輸出,為了防止看不清,我再寫一下
1)git log -n2|grep "commit"|tail -n1|cut -d " " -f2&& cat .git/fetch_head
2)檢視輸出的兩行中,
commit id
是否一樣。圖中的兩個
commit id
只要不一樣,肯定是會出錯的,要麼就是
confilict
要麼就是
can』t merge
3) 小
a啊,你重新提吧,先把你的這次提交儲存一下,可以用
format-patch
,只要儲存下來就行了。然後用
git reset --hard fetch_head && git pull
,然後再重新加你的**吧。
#在這裡我多說一句,建議用
git format-patch
儲存成patch檔案,
另外建議使用
vim編輯器提交**
(剛開始可能不習慣,之後你會愛上
vim的
)a:老闆,我為啥拉**老是失敗
老闆:失敗你妹
啊,用git remote -v看一下你的
url配置了沒有,然後看看我的
url跟你的一樣不一樣
a:我跟你的一樣啊老闆,我曹了,這是什麼情況
老闆:具體報的什麼錯誤,怎麼失敗了?
a:這個路徑的檔案
error
了。。。。
老闆:我曹,你以後能不能自己建立乙個分支放你自己的**啊,工作的那個分支別**的當成你自己的版本了。 繼續git reset --hard fetch_head. #沒有拉取**許可權的就忽略了
上面兩個場景真的很重要,因為我也曾經這樣過。總結一下上述的命令,其中最重要的就是乙個命令git reset --hard fetch_head,這行**是無敵的,會把你的**回退到上次正確的**的地方。
另外就是場景一中的第一步,這個命令太長了
git log -n2|grep "commit"|tail -n1|cut -d " " -f2&& cat .git/fetch_head
不懂shell的同學可以了解一下管道命令(『
|』)以及
cut grep
這些命令常用的操作很簡單的
git log -n2檢視最近的兩次提交,然後我們要對比第二次提交的
commit id
與fetch_head
所指向的
commit id
,如果兩次一樣,則代表,你的這次提交是基於
git pull
之後的,是正確的。
如果不一樣,則要繼續git pull了
兔子跳坑法
兔子跳坑 即用並查集維護線段上某點每次能到的的最後乙個點 題目一 description 乙隻有追求的兔紙,不應該終日遊戲。於是它參加了乙個名為蘿蔔大戰的遊戲,啊不,比賽。比賽開始時,場地上有nn個蘿蔔,第ii個蘿蔔具有美味度didi。更加詭異的是,第ii個蘿蔔會在第titi秒末消失。雖然兔紙每秒至...
react native初學跳坑
react native 環境配置 詳見react native官網 執行react native專案問題總結 1 執行成功後出現 原因 是因為assets目錄下面沒有找到相應的scripts檔案 2 在虛擬機器上面執行專案出現could not connect development server...
小程式 跳坑
關於元件 1.元件中包含定時器,頁面離開定時器的清除 問題 在頁面離開後倒計時仍在繼續 解決 在頁面離開時清除定時器 2.場景 頁面中包含不同tab頁面,各tab頁面模板一致,模板內包含的元件id也一樣,在tab切換時重新整理tab頁內資料。解決 在tab切換時先將舊資料字段清空 3.場景 把lis...