git 常用命令

當(dāng)你在錯誤的分支上做了修改,本來應(yīng)在A上修改,結(jié)果在B上修改了。那么怎么辦呢?

不著急,有辦法~

1)如果你在分支B上的文件還沒有commit

  • 先 git stash,把沒有commit的更改文件暫存在一個地方,這個地方git知道,你是看不到的。
  • 切換到正確的分支A。
  • 使用git stash pop 命令,把暫存的文件找回來。
    這個時候無論你是想在正確的分支上繼續(xù)修改,還是直接commit都沒有問題。
    這就是 [ git stash ] 和 [ git stash pop ] 的秘密。
    總結(jié)而言:先保存好修改的版本,然后切換分支,切換回來再去把修改的拉回來。

2).代碼不但改了,還提交了怎么辦。

git checkout 不該提交代碼提交了代碼的分支
git reset HEAD~1 (最近一次提交放回暫存區(qū), 并取消此次提交)
git stash (把暫存的文件提交到git的暫存棧)
git checkout 該提交代碼的分支
git stash pop 把暫存棧的文件找回來,你還可以繼續(xù)修改,或者把代碼提交到了正確的分支后,然后再次切到剛剛錯的分支
git push origin 錯誤的分支 -f (把不該上去的文件回退掉)

當(dāng)我們用https clone項目到本地的時候,git push命令每次都需要輸入密碼,下面的方法可以很快的解決這個麻煩。

git config credential.helper store
git pull 
然后會讓你輸入帳號和密碼
再執(zhí)行g(shù)it pull 命令后,就不再需要輸入帳號和密碼了。

file ~/.git-credentials
cat ~/.git-credentials
通過查看上面的命令,你可以發(fā)現(xiàn)密碼其實是明文存在途中的 ~/.git-credentials 這個文件里的,你可以打開看呢。

如果嫌git log 輸出信息太多,看得眼花繚亂的,可以試試加上--pretty=oneline參數(shù):

git log --pretty=oneline

Git創(chuàng)建遠(yuǎn)程分支

現(xiàn)在我在master分支上,工作目標(biāo)是干凈的,也沒有需要commit的:
$ git branch

  • master
    release
    $ git status
    On branch master
    Your branch is up-to-date with 'origin/master'.
    nothing to commit, working directory clean

新建遠(yuǎn)程分支
新建一個本地分支:
git checkout -b localbranch 查看一下現(xiàn)在的分支狀態(tài): git branch
*localbranch
master
release

星號(*)表示當(dāng)前所在分支?,F(xiàn)在的狀態(tài)是成功創(chuàng)建的新的分支并且已經(jīng)切換到新分支上。
把新建的本地分支push到遠(yuǎn)程服務(wù)器,遠(yuǎn)程分支與本地分支同名(當(dāng)然可以隨意起名):
$ git push origin localbranch:localbranch
使用git branch -a查看所有分支,會看到remotes/origin/localbranch這個遠(yuǎn)程分支,說明新建遠(yuǎn)程分支成功。

建立本地到上游(遠(yuǎn)端)倉的鏈接 --這樣代碼才能提交上去
git branch --set-upstream-to=origin/localbranch
就OK了

刪除遠(yuǎn)程分支

我比較喜歡的簡單方式,推送一個空分支到遠(yuǎn)程分支,其實就相當(dāng)于刪除遠(yuǎn)程分支:
git push origin :localbranch 也可以使用: git push origin --delete localbranch
這兩種方式都可以刪除指定的遠(yuǎn)程分支

當(dāng)你遇到POSSIBLE DNS SPOOFING DETECTED! 時,只需要執(zhí)行一行命令就能解決

國慶放假幾天,回來拉代碼,執(zhí)行g(shù)it pull,發(fā)現(xiàn)報WARNING: POSSIBLE DNS SPOOFING DETECTED!錯。


01.png

根據(jù)提示可以看到主要是.ssh/known_hosts的第32行發(fā)送沖突,這一行也是我們代碼庫對應(yīng)的公鑰,解決辦法就是把~/.ssh/known_hosts里面對應(yīng)IP節(jié)點的公鑰刪掉。也就是ssh重新驗證

$ ssh-keygen -f 加上圖第二個紅框中的地址 -R 加上圖第一個紅框中的地址
例如:ssh-keygen -f /Users/youName/.ssh/known_hosts -R git.17usoft.com

修改完成后重新驗證會提示是否重新鏈接,輸入yes,如下圖


02.png

原因說明:我們在ssh時,openssh會把訪問過計算機(jī)的公鑰(public key)都記錄在~/.ssh/known_hosts。當(dāng)下次訪問相同計算機(jī)時,openssh會核對公鑰。如果公鑰不同,openssh會發(fā)出警告,避免你受到DNS Hijack之類的攻擊。因此我們現(xiàn)在只需要刪除knows_hosts文件中所對應(yīng)的IP節(jié)點的公鑰,然后再ssh IP地址就可以了。仔細(xì)看錯誤提示,也能看到IP地址,因此我們現(xiàn)在只需要刪除knows_hosts文件中所對應(yīng)的IP節(jié)點的公鑰,然后再ssh IP地址就可以了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 我的常用: ===================================** 撤銷工作修改:**1、gi...
    ddai_Q閱讀 909評論 0 5
  • 最近一直被一本書弄的我欲罷不能,真想拋開工作,一口氣把他讀完才爽! 好了,不賣官司。我說的是村上春樹的<<挪威的森...
    小李非刀閱讀 241評論 2 0
  • 2017.1.4 1. 對一個類做擴(kuò)展方法,面向?qū)ο笾?對一個類要有開放擴(kuò)展,關(guān)閉修改的原則 2. MSDN官方論...
    shannoon閱讀 200評論 0 0
  • 一個人 靜靜地傾聽 總涌上 莫名的心潮 海邊的浪花 或許 享受著陽光 或許 洋溢著微笑 或許 埋葬著苦澀 說不盡地...
    我喜歡阿貍桃子閱讀 199評論 2 3

友情鏈接更多精彩內(nèi)容