github返回801
這可能是你的電腦上沒有安裝git導致的,嘗試安裝git
后再試。
修改某次commit的注釋
git rebase -i HEAD~2
最后的數字2指的是顯示到倒數第幾次 比如這個輸入的2就會顯示倒數的兩次注釋(最上面兩行) 根據提示,在你想要修改的注釋前,將pick
改為edit
git commit --amend
修改注釋git rebase --continue
回到最新的HEAD
其實這個原理我的理解就是先版本回退到你想修改的某次版本,然后修改當前的commit注釋,然后再回到本地最新的版本
原文:https://www.jianshu.com/p/098d85a58bf1
刪除遠端某次提交歷史
git reset --hard <commit_hash>
git push origin <xx_branch> -f
使用 rebase 和 merge 的基本原則:(待測試)
下游分支更新上游分支內容的時候使用 rebase上游分支合並下游分支內容的時候使用 merge更新當前分支的內容時一定要使用 --rebase 參數
例如現有上游分支 master,基於 master 分支拉出來一個開發分支 dev,在 dev 上開發了一段時間后要把 master 分支提交的新內容更新到 dev 分支,此時切換到 dev 分支,使用 git rebase master
等 dev 分支開發完成了之后,要合並到上游分支 master 上的時候,切換到 master 分支,使用 git merge dev
配置完公鑰后,拉取代碼提示輸入密碼,解決方案
系統: ubuntu
重新執行 ssh-keygen -t rsa -C "xxxxx@xxxxx.com"
命令, 當他提示你輸入密碼時(俗稱 "鹽"), 你一定要輸入密碼,然后, 更換公鑰,重新克隆.
拉取項目的子模塊
方法一: 克隆主Git時帶上 --recursive 參數
git clone --recursive xxx.git
方法二: 如果項目已經克隆到了本地,執行下面的步驟
git submodule init
# 初始化本地子模塊配置文件
git submodule update
# 更新項目,抓取子模塊內容。
其他操作
- 回退到指定commit版本。
git reset --hard xx;
- 刪除遠程的某個提交(確保還沒其他人提交之前,進行強制回滾)
git reset --hard HEAD~2
git push -f
同步遠程分支
git fetch --all #同步提交歷史
git reset --hard origin/master (這里master要修改為對應的分支名) # 將本地的指針指向,跟遠程的指針同步。
git pull origin branch_name # 拉取遠程分支
cherry-pick
git checout master
git cherry-pick <otherBranch_commitHash> # 將其他分支的 commitHash 記錄添加到 master 分支
git cherry-pick [<options>] <commit-ish>...
常用options:
--quit 退出當前的chery-pick序列
--continue 繼續當前的chery-pick序列
--abort 取消當前的chery-pick序列,恢復當前分支
-n, --no-commit 不自動提交
-e, --edit 編輯提交信息
原文鏈接:https://blog.csdn.net/fightfightfight/article/details/81039050
git rebase
用於把一個分支的修改合並到當前分支
git rebase origin
同步遠程分支內容到當前分支。
如果有沖突,會提示你解決沖突,你解決完后,執行
git add 文件索引 # 更新文件索引
git rebase --continue # 繼續執行合並操作。
在任何時候,可以用--abort
參數來終止rebase
的操作,並且當前分支會回到rebase
開始前的狀態。