git命令行操作

本地庫操作

基本命令

  1. 初始化本地庫 git init
  2. 設(shè)置簽名:區(qū)分不同開發(fā)人員的身份 ,倉庫級別/項(xiàng)目級別:
    git config user.name feng
    git config user.email feng@aaa
    系統(tǒng)用戶級別,采用就近原則,項(xiàng)目級別優(yōu)于項(xiàng)目級別
    git config --global user.name feng
    git config --global user.email feng@123
    查看狀態(tài),查看工作區(qū),暫存區(qū)的狀態(tài):git status
    加入暫存區(qū)[新建或修改的文件]: git add a.txt
    從暫存區(qū)撤回【暫存區(qū)可以撤回,前提是要add操作后,如果修改的文件,沒有執(zhí)行add不行】:git rm --cached a.txt
    從暫存區(qū)提交到本地庫:git -m '注釋' commit a.txt
    版本的前進(jìn)、后退:

查看歷史記錄

git log 看起來很亂,可以格式化:git log --pretty=oneline,每次提交以一行顯示。
git log --oneline 簡化顯示
git reflog 多一些顯示內(nèi)容,顯示回退到每個版本要移動的步驟

執(zhí)行版本前進(jìn)后退

  1. 基于索引【指針】
    git reset --hard 索引值
    reset有三個參數(shù):在本地庫移動head,重置暫存區(qū),重置工作區(qū)
    hard,
    soft:靜靜在本地庫移動指針,不會動暫存區(qū)和工作區(qū)
    mixed【混合】:會在本地庫移動head指針,也會重置暫存區(qū)
  2. 基于~符合:
  3. 基于^符號:只能往后,不能往前

刪除文件并找回【文件存在時的狀態(tài)提交到了本地庫】

  1. image.png
  • rm命令刪除了已經(jīng)提交到本地庫的一個文件,刪除后,需要git add 文件 到暫存區(qū),然后在執(zhí)行g(shù)it commit 刪除文件即可。
  • 恢復(fù)1:執(zhí)行g(shù)it reflog,找到刪除前的一個提交版本id,執(zhí)行g(shù)eit reset --hard xxxx即可找回
  • 恢復(fù)2:【刪除操作未提交到本地庫】如果文件納入了本地庫管理【即,執(zhí)行了git commit操作】,然后又執(zhí)行了rm 文件,又再執(zhí)行了git add 文件,此時如果想恢復(fù)文件,可以執(zhí)行g(shù)it rest --hard HEAD命令即可
  1. 【文件存在時的狀態(tài)沒有提交到了本地庫】
  • rm 文件后,執(zhí)行g(shù)it status查看狀態(tài),執(zhí)行g(shù)it rm 文件 ,即可刪除,無須git commit,因?yàn)榇藭r還為納入版本管理
  • git rm 命令,不能直接刪除文件,是刪除暫存區(qū)的,或者是執(zhí)行了rm 文件后,可以用git rm 文件從暫存區(qū)刪除
    2.git reset --hard [指針位置] :
    指針位置指向歷史記錄;
    指針位置使用 HEAD;

比較文件差異

  1. git diff [文件名] 將工作區(qū)中的文件和暫存區(qū)進(jìn)行比較
  2. git diff [本地庫中歷史版本] [文件名]:將工作區(qū)中的文件和本地庫歷史記錄比較

分支管理

分支操作

  1. 創(chuàng)建分支:git branch 分支名
  2. 查看分支:git branch -v
  3. 切換分支:git checkout 分支名
  4. 合并分支:
  • 進(jìn)入要合并的分支(如開發(fā)分支合并到master,則進(jìn)入master目錄)
    git checkout master
    git pull
  • 查看所有分支是否都pull下來了
    git branch -a
  • 使用merge合并開發(fā)分支
    git merge 分支名
  • 查看合并之后的狀態(tài)
    git status
  • 有沖突的話,通過IDE解決沖突;
  • 解決沖突之后,將沖突文件提交暫存區(qū)
    git add 沖突文件
  • 提交merge之后的結(jié)果
    git commit
    如果不是使用git commit -m "備注" ,那么git會自動將合并的結(jié)果作為備注,提交本地倉庫;
  • 本地倉庫代碼提交遠(yuǎn)程倉庫
    git push
    git將分支合并到分支,將master合并到分支的操作步驟是一樣的。

遠(yuǎn)程庫操作

查看遠(yuǎn)程庫信息

  1. git remote -v 查看當(dāng)前所有遠(yuǎn)程地址別名
  1. 添加遠(yuǎn)程庫別名:git remote add [別名] [遠(yuǎn)程地址]
  1. 推送:git push [別名] [分支名]
  • git push origin dev
  • git push origin dev:dev
  1. 克隆 git clone 遠(yuǎn)程地址
  • 完整的把遠(yuǎn)程庫下載到本地
  • 創(chuàng)建 origin 遠(yuǎn)程地址別名
  • 初始化本地庫
  1. 拉取相關(guān)操作
  2. pull=fetch+merge
  • fetch是把遠(yuǎn)程庫的內(nèi)容抓取到本地庫,并沒有更新到工作區(qū)里面,如果想看抓取下來的內(nèi)容,可以使用
    git checkout origin/master 命令后,然后可以使用cat等命令查看本地庫內(nèi)容:


    image.png

    查看完后,可以在使用git checkout dev切換回來


    image.png
  • 合并本地庫的內(nèi)容到自己的工作區(qū)【本地庫的master到本地的dev分支(當(dāng)前分支)】:


    image.png
  1. git fetch [遠(yuǎn)程庫地址別名] [遠(yuǎn)程分支名]
  2. git merge [遠(yuǎn)程庫地址別名/遠(yuǎn)程分支名]
  3. git pull [遠(yuǎn)程庫地址別名] [遠(yuǎn)程分支名]
  4. 沖突解決
  • 如果不是基于 GitHub 遠(yuǎn)程庫的最新版所做的修改,不能推送,必須先拉
  • 拉取下來后如果進(jìn)入沖突狀態(tài),則按照“分支沖突解決”操作解決即可
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

  • 本地倉庫和遠(yuǎn)程倉庫的中間緩存將git暫存區(qū)的文件推送到遠(yuǎn)程倉庫放入暫存區(qū)git add .git commit -...
    jacktang2012閱讀 229評論 0 0
  • Git是目前世界上最先進(jìn)的分布式版本控制系統(tǒng),很方便公司同事間合作開發(fā),使用Git可以使用可視化的軟件,如Sour...
    LeeCoder閱讀 5,000評論 2 10
  • git命令行操作 拉取項(xiàng)目 git clone 項(xiàng)目地址 創(chuàng)建分支并跳過去 git branch 分支名 git ...
    辰微9036閱讀 188評論 0 0
  • 這里參考廖雪峰老師的教程,一步步重頭操作一遍。 概念 Git:分布式版本控制系統(tǒng)和svn 這種集中式的版本控制系統(tǒng)...
    夢想成真213閱讀 9,358評論 0 4
  • Git命令行操作分為本地庫操作和遠(yuǎn)程庫操作 本地庫初始化 使用如下命令進(jìn)行g(shù)it本地庫的初始化 初始化的效果創(chuàng)建....
    BlueSkyBlue閱讀 259評論 0 0

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