git 相關

目錄

  • git SSH配置
  • git 分支名修改
  • git 放棄本地修改 強制拉取更新
  • git 撤銷commit
  • git stash 暫存
  • git 將單個文件回退到某個版本
  • git 更新遠程分支列表
  • git tag
  • git合并多個 Commit (rebase)

git SSH配置

git config --global user.name “用戶名”
git config --global user.email “郵箱”

1、打開git bash。
2、使用cd ~/.ssh可以查看是否已配置SSH。
3、執行生成公鑰和私鑰的命令ssh-keygen -t rsa 并按回車3下(為什么按三下,是因為有提示你是否需要設置密碼,如果設置了每次使用Git都會用到密碼,一般都是直接不寫為空,直接回車就好了)。會在一個文件夾里面生成一個私鑰 id_rsa和一個公鑰id_rsa.pub。(可執行start ~命令,生成的公私鑰在 .ssh的文件夾里面)。
4、.ssh如果不做特殊處理的話,一般是在C:\Users\Administrator目錄下。如果看不到.ssh文件,可以使用ls -ah指令查看隱藏文件夾即可,這是存放秘鑰的文件,打開這個文件會看到id_rsa和id_rsa.pub。id_rsa是私鑰文件,id_rsa.pub是公鑰文件。
5、執行查看公鑰的命令cat ~/.ssh/id_rsa.pub 。


git 分支名修改:

如果對于分支不是當前分支,可以使用下面代碼:

git branch -m "原分支名" "新分支名"

如果是當前分支,可以使用下面代碼

git branch -m "新分支名稱"

git 放棄本地修改 強制拉取更新

git fetch –all
git reset –hard origin/分支名

git 撤銷commit

執行commit后,還沒執行push時,想要撤銷這次的commit,該怎么辦?

git reset --soft HEAD^

--soft
不刪除工作空間的改動代碼 ,撤銷commit,不撤銷git add file
--hard
刪除工作空間的改動代碼,撤銷commit且撤銷add

如果commit注釋寫錯了,先要改一下注釋,有其他方法也能實現,如:

git commit --amend

這時候會進入vim編輯器,修改完成你要的注釋后保存即可。


git stash 暫存

暫存:

git stash save '本次暫存的標識名字'

查看stash:

#查看記錄
git stash list

取出stash暫存內容
恢復指定的暫存工作, 暫存記錄保存在list內,需要通過list索引index取出恢復
恢復后,暫存區域會刪除當前的記錄:

git stash pop stash@{index}

恢復指定的暫存工作, 暫存記錄保存在list內,需要通過list索引index取出恢復
恢復后,暫存區域會保存當前的記錄:

git stash apply stash@{index}

刪除stash:

#刪除某個暫存, 暫存記錄保存在list內,需要通過list索引index取出恢復
git stash drop stash@{index}
#刪除全部暫存
git stash clear

git 將單個文件回退到某個版本

  • 僅查看歷史版本
    1.首先 cd 到該文件所在目錄,通過 git log file_path獲取這個文件的提交log hash code,更改記錄
    2.將該文件檢出 :git checkout hashcode file_path
    這個時候你就會發現你的這個文件已經回退到期望的版本了
  • 回退到某歷史版本,并提交
    1.git log a.js
    2.git reset hashcode file_path
    3.git commit -m "注釋內容"
    4.git checkout file_path
    5.git push origin branch

git 更新遠程分支列表

git remote update origin --prune

git 打tag

列出已有的tag

git tag

新建tag

git tag v1.0

添加tag備注

git tag -a v1.0 -m "注釋"

查看tag詳細信息

git show v1.0

給指定的某個commit號加tag

git tag -a v1.0  9fceb02  -m "注釋"

將tag同步到遠程服務器

git push origin v1.0

切換到某個tag

git checkout v1.0

但是,這時候 git 可能會提示你當前處于一個“detached HEAD" 狀態。
因為 tag 相當于是一個快照,是不能更改它的代碼的。
如果要在 tag 代碼的基礎上做修改,你需要一個分支:

git checkout -b branch_name  tag_name

刪除某個tag
本地刪除:

git tag -d v1.0

遠程刪除

git push origin :refs/tags/v1.0

git合并多個 Commit

去到某個需要合并的commit之前的一條commit

gti rebase -i hashcode

進入到 vi 的編輯模式


image.png
  • pick 的意思是要會執行這個 commit
  • squash 的意思是這個 commit 會被合并到前一個commit

將 c4e858b5 這個 commit 前方的命令改成 squash 或 s,然后輸入:wq以保存并退出:


image.png

進入到 commit message 的編輯界面,非注釋部分就是兩次的 commit message, 你要做的就是將這兩個修改成新的 commit message:


image.png

輸入wq保存并推出, 再次輸入git log查看 commit 歷史信息,你會發現這兩個 commit 已經合并了。


image.png
  • 將某一段commit合并到另一條分支
  • (如果只是復制某一兩個提交到其他分支,建議使用更簡單的命令:git cherry-pick
git rebase   [startpoint]   [endpoint]  --onto  [branchName]
  • 不想看到commit記錄中自動生成的Merge branch 'xxx' into 'xxx'
git pull --rebase
  • git rebase --continue : 繼續并保存rebase
  • git rebase --abort : 終止rebase

未完待續...

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 一、git的安裝 windows的安裝:git for windows安裝完成后,在命令行輸入git --vers...
    一只碼農的成長閱讀 299評論 0 4
  • 一.Git簡介 Git是目前世界上最先進的分布式版本控制系統。它就沒有中央服務器的,每個人的電腦就是一個完整的版本...
    大鵬的鵬閱讀 549評論 0 0
  • 一、git客戶端(本地倉庫)的一些操作 1.設置賬戶(需要和github賬戶設置一致) git config --...
    小白IT閱讀 190評論 0 1
  • git官方英文操作文檔參考[https://git-scm.com/book/zh/v2/Git-%E5%9F%B...
    dmengmeng閱讀 489評論 0 0
  • Git 是 分布式版本管理工具。因為這里在開發后臺時候使用,所以寫在后臺開發相關的分類下。 1. 簡介 Git 是...
    MikeShine閱讀 291評論 0 0