git常用命令詳解

自己的倉庫管理:

git add <filename>

  • 將文件添加到暫存區(qū)中 (其中g(shù)it add.可以將當前目錄的子目錄文件都添加到暫存區(qū)中)

git commit -m "...":

  • 保存?zhèn)}庫的歷史記錄,其中 -m "..."提交信息(概述)

git config --global user.name "..."、git config --global user.email "...":

  • 配置提交作者信息

git log:

  • 查看提交日志(當前狀態(tài)為終點) 會產(chǎn)生版本庫里一系列單獨提交的歷史

git diff ID1/ID2:

  • 查看版本差異

git mv 新名字,舊名字

  • 重命名:

git branch -a [-v]

  • 分支一展表, -r 查看遠程git服務(wù)器上的分支

git checkout 分支名:

  • 切換分支
  • -b創(chuàng)建,且切換到新建分支 等價于git branch 分支名 + git checkout 分支名

git branch -d [分支名稱]

  • 刪除一個分支, -d選項只能刪除已經(jīng)參與過合并的分支,對于未參與合并的分支是無法刪除的。如果想強制刪除一個分支,可以使用-D選項、

git rest --head ID :

  • 退回之前提交版本

git status :

  • 查看倉庫當前狀態(tài);

git reflog :

  • 查看當前倉庫的操作日志

git rebase -i:

  • 壓縮歷史(如果出現(xiàn)拼寫錯誤時需要): git rebase -i HEAD~2

git merge --no-f 分支名 :

  • 合并分支

git remote set-url origin https://github.com/Freedomisgood/NjuptGo.git

  • 修改倉庫指定新的遠程倉庫

git commit --amend:

  • 修改上次commit備注信息

遠程倉庫

如果本地沒有倉庫,則clone:
git clone http://github.com/xxx/yyy.git

在本地增加遠程倉庫信息:git remote add apollo3d http://github.com/xxx/yyy.git,此時遠程庫名為origin、apollo3d

刪除遠程分支git push origin --delete kickof

git push代碼到遠程新分支
git push origin master:my_remote_new_branch

git pull

如果本地有倉庫,則拉取更新命令為:
git pull <遠程庫名> <遠程分支名>:<本地分支名>

比如,取回遠程庫中的online分支,與本地的online分支進行merge,要寫成:

git pull origin online:online
如果是要與本地當前分支merge,則冒號后面的<本地分支名>可以不寫

git pull origin online
通常,git會將本地庫分支與遠程分支之間建立一種追蹤關(guān)系。比如,在git clone的時候,所有本地分支默認與遠程庫的同名分支建立追蹤關(guān)系。也就是說,本地的master分支自動追蹤origin/master分支。因此,如果當前處于本地online分支上,并且本地online分支與遠程的online分支有追蹤關(guān)系,那么遠程的分支名可以省略:

比如,取回遠程庫中的online分支,與本地的online分支進行merge,要寫成:

git pull origin

其實,git pull 命令等同于先做了git fetch ,再做了git merge。即:

git fetch origin online
git checkout online
git merge origin/online

git push

二.推送本地分支到遠程倉庫

(一).創(chuàng)建本地分支git checkout -b 新分支名
(二).推送本地分支到遠程倉庫git push --set-upstream origin 分支名

三、將遠程git倉庫里的指定分支拉取到本地(本地不存在的分支)

git checkout -b 本地分支名 origin/遠程分支名

修改了.gitignore生效指令

git rm -r --cached . // 刪除本地緩存
git add . // 添加要提交的文件
git commit -m 'update .gitignore' // 更新本地的緩存

參考

采坑記錄

Q: 不小心git reset --hard HEAD^導(dǎo)致工作區(qū)文件全沒了

A:解決方案:

  • Undo git reset --hard with uncommitted files in the staging area

  • 恢復(fù)git reset --hard刪除的文件

    根據(jù)這篇博客操作的結(jié)果git cat-file -p ID > a.md是個對比文件

    100644 blob cdca566953e3b7b56897b2fa6995129170403212  Q-learning.ipynb
    100644 blob 47735fcc505315aa61583dad9dc4facb7c00fbdc  Q-learning.py
    100644 blob e69de29bb2d1d6434b8b29ae775ad8c2e48c5391  __init__.py
    040000 tree db76babbe2f2df4566b607e732c0c835418f9a83  __pycache__
    100644 blob debb716313cfbf28c055e89ce4a625a1d7801f5b  agents.py
    100644 blob 30ec43da68efe5eb5e8e31cb431fea981e256b6a  approximator.py
    100644 blob 1e8ac820d62943d16fa56fa981d72e27239527d9  core.py
    100644 blob a0cfa7ac7f9f15a658ace5c5c7c5bbe73f680502  myringworld.py
    100644 blob 69cb25ba30f4350454a0e731a70890cbf2530217  ringworld.py
    100644 blob 5638e012cb1b68783e6cdf45d2e769cca96e591f  utils.py
    100644 blob 96aa662c03d991487e6da8120884b6f647be7202  viewer.py
    
    
  • △.關(guān)于git reset --hard導(dǎo)致文件丟失的血的教訓(xùn)——親測有效

    • 解決add了但沒有commit的文件,可以用上述方法找回

分支git branch參數(shù)區(qū)別

[圖片上傳失敗...(image-d160b6-1570800745059)]

?著作權(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)容

  • 一、 Git 命令初識 在正式介紹Git命令之前,先介紹一下Git 的基本命令和操作,對Git命令有一個總體的認識...
    子瘋zp閱讀 70,385評論 1 18
  • @[toc] 1.本地git賬號和遠程github賬號關(guān)聯(lián) 1.設(shè)置本地git的賬號的用戶名:git config...
    門心叼龍閱讀 1,054評論 0 0
  • 三大區(qū)域: 工作區(qū) → 緩存區(qū) → 本地倉庫 一 、 使用 git config 命令進行配置: git ...
    Manchangdx閱讀 2,950評論 0 2
  • 查看、添加、提交、刪除、找回,重置修改文件 git help # 顯示command的help git sho...
    Swiftor閱讀 2,211評論 0 2
  • Add & Commit git init 初始化一個 Git 倉庫(repository),即把當前所在目錄變成...
    冬絮閱讀 5,132評論 0 9

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