Git 常用命令大全

分布式版本管理工具

  • git屬于分布式
  • svn集中式

git安裝

git初始化一個(gè)倉庫

  • 其實(shí)就是創(chuàng)建了一個(gè).git隱藏目錄
  • 命令:git init;初始化 有一個(gè).get 隱藏文件夾
    • 想在哪個(gè)目錄創(chuàng)建.git目錄,就是哪個(gè)目錄打開工具然后寫命令.
    • 一般是在項(xiàng)目的根目錄執(zhí)行這個(gè)命令.
    • 查看文件 ls 或者 ls -a

配置信息

  • 配置用戶名 : git config user.name "testName"
  • 配置郵箱 : git config user.email "test@sina.com"
  • 查看配置信息: git config --list

把代碼提交到倉庫中

  • 1.先把代碼添加到暫存區(qū)(就相當(dāng)于放到倉庫門口)

    • 命令:git add 文件路徑
    • 示例:git add ./reademe.md
    • 可以使用git add .這個(gè)命令,批量把當(dāng)前目錄下所有修改過的文件添加到暫存區(qū)。
  • 2.把暫存區(qū)的文件提交倉庫里

    • 命令: git commit -m "注釋"
    • 示例: git commit -m "我們添加了一個(gè)新的功能"
    • -m 表示指定一個(gè)字符串,作為提交的說明(相當(dāng)于注釋);
  • 合并add 與commit 命令

    • git commit -a -m "這是使用合并添加與提交的操作";
    • 這里-a參數(shù)表明把所有修改后的文件一起添加到暫存區(qū).(只是對修改后的文件有效,對于新添加的文件沒有作用)

查看工作區(qū)狀態(tài)

  • 命令:git status

比對文件差異

  • 命令: git diff
    • 用來比較工作區(qū)內(nèi)容與最近一次提交的內(nèi)容的區(qū)別
    • 如果暫存區(qū)沒有文件,就會(huì)將工作與代碼與最近一次提交對比
  • 命令:git diff --cached 比較暫存區(qū)的文件和倉庫中文件的區(qū)別
  • 對比之前某兩次提交的文件的差異
    • 命令:git diff [版本號(hào)1] [版本號(hào)2] [想比較的文件路徑]

查看日志

  • 命令:git log,可以查看每一次提交的日志
  • 命令:git log --oneline 表示使用簡潔的形式輸出提交日志

版本回退

  • 命令:git reset --hard Head~1

    • 這是將代碼回退到上上一次提交時(shí)的狀態(tài)
  • 命令:git reset --hard Head~2

    • 回退到上上上次
  • 命令:git reset --hard Head~0

    • 回退到上次提交時(shí)的狀態(tài),~0可以省略
  • 命令:git reset --hard 版本號(hào)

    • 通過每次提交時(shí)生成的版本號(hào)來回退版本
  • 通過git reflog命令可以查看之前所有版本切換的操作記錄,可以通過這個(gè)命令得到的版本號(hào)回退到指定的版本。

創(chuàng)建分支

  • 命令:git branch [分支名]
    • 創(chuàng)建一個(gè)新分支 分支名一般是 自己姓名的拼音或首字母+需求號(hào)
  • 命令:git branch
    • 查看當(dāng)前所有的分支

切換分支

  • 命令:git checkout [分支名]

    • 切換分支后可以在切換后的分支中進(jìn)行正常的操作

    創(chuàng)建和切換合在一起操作:'git checkout -b [分支名]'

合并分支

  • 命令:git merge [分支名]
    • 合并分支前先切換到主分支 master 然后在合并
    • git會(huì)將指定的分支合并到當(dāng)前分支.

刪除分支

  • 命令:git branch -d [分支名]
    • 刪除指定分支,-d參數(shù)表示要執(zhí)行刪除操作

git提交中的沖突

  • 如果git不能自動(dòng)合并分支,就會(huì)有沖突,我們需要手動(dòng)解決沖突,然后再次提交
  • 同一個(gè)文件的同一行在兩個(gè)分支中不一樣

github

github與git

  • git 版本管理工具
  • github 就是一個(gè)網(wǎng)站,只是這個(gè)網(wǎng)站提供git服務(wù)器的功能

上傳代碼到git服務(wù)器(push)

  • 命令:git push [遠(yuǎn)程服務(wù)器地址] [遠(yuǎn)程服務(wù)器的分支]

    • 示例:git push https://github.com/xxxxxxx.git master
  • 上傳時(shí)可以使用一些簡化的命令

    • 將遠(yuǎn)程服務(wù)器地址寫成變量的形式
      • git remote add [變量名] [遠(yuǎn)程服務(wù)器地址]
      • 示例:git remote add origin https://github.com/xxxxxxxxx.git
      • 這樣之后就可以直接使用origin來代替git push 后面寫的地址了
        git push origin master
  • 還可以盡一步簡化

    • 在push時(shí)加上-u參數(shù),就會(huì)默認(rèn)建立本地當(dāng)前分支與遠(yuǎn)程指定分支的關(guān)聯(lián),下一次push時(shí)就不需要輸入分支名了git push origin;

git使用ssh方式上傳代碼與github

  • git生成公鑰和私鑰
    • 命令:ssh-keygen -t rsa生成的公鑰與私鑰文件會(huì)在當(dāng)用戶目錄的.ssh目錄下.

把代碼push到服務(wù)器時(shí)需要先pull一下

  • 在pull之后如果遠(yuǎn)程的代碼與本地的代碼有沖突,git會(huì)先自動(dòng)合并沖突,如果不能自動(dòng)合并,就必需我們手動(dòng)去處理沖突。

從服務(wù)器上pull代碼到本地

  • 如果本地沒有.git目錄,需要先初始化一下。
  • 命令:git pull [遠(yuǎn)程服務(wù)器地址] [遠(yuǎn)程的分支]
    • 把遠(yuǎn)程庫的代碼更新到工作臺(tái) git pull
    • 強(qiáng)制把遠(yuǎn)程庫的代碼更新到當(dāng)前分支上面git pull --rebase origin master

gh-pages分支-搭建博客.

  • 需要把自已博客的網(wǎng)頁代碼上傳到github上的gh-pages分支
  • 然后就直接訪問了
    • 訪問的url形式: [github用戶名].github.io/[倉庫的名字]/[具體的頁面]

1) 遠(yuǎn)程倉庫相關(guān)命令

檢出倉庫:$ git clone git://github.com/jquery/jquery.git
查看遠(yuǎn)程倉庫:$ git remote -v
添加遠(yuǎn)程倉庫:$ git remote add [name] [url]
刪除遠(yuǎn)程倉庫:$ git remote rm [name]
修改遠(yuǎn)程倉庫:$ git remote set-url --push [name] [newUrl]
拉取遠(yuǎn)程倉庫:$ git pull [remoteName] [localBranchName]
推送遠(yuǎn)程倉庫:$ git push [remoteName] [localBranchName]

*如果想把本地的某個(gè)分支test提交到遠(yuǎn)程倉庫,并作為遠(yuǎn)程倉庫的master分支,或者作為另外一個(gè)名叫test的分支,如下:
$git push origin test:master // 提交本地test分支作為遠(yuǎn)程的master分支
$git push origin test:test // 提交本地test分支作為遠(yuǎn)程的test分支

2)分支(branch)操作相關(guān)命令

查看本地分支:$ git branch
查看遠(yuǎn)程分支:$ git branch -r
創(chuàng)建本地分支:$ git branch [name] ----注意新分支創(chuàng)建后不會(huì)自動(dòng)切換為當(dāng)前分支
切換分支:$ git checkout [name]
創(chuàng)建新分支并立即切換到新分支:$ git checkout -b [name]
刪除分支:$ git branch -d [name] ---- -d選項(xiàng)只能刪除已經(jīng)參與了合并的分支,對于未有合并的分支是無法刪除的。如果想強(qiáng)制刪除一個(gè)分支,可以使用-D選項(xiàng)
合并分支:$ git merge [name] ----將名稱為[name]的分支與當(dāng)前分支合并
創(chuàng)建遠(yuǎn)程分支(本地分支push到遠(yuǎn)程):$ git push origin [name]
刪除遠(yuǎn)程分支:$ git push origin :heads/[name] 或 $ gitpush origin :[name]

*創(chuàng)建空的分支:(執(zhí)行命令之前記得先提交你當(dāng)前分支的修改,否則會(huì)被強(qiáng)制刪干凈沒得后悔)
$git symbolic-ref HEAD refs/heads/[name]
$rm .git/index
$git clean -fdx

3)版本(tag)操作相關(guān)命令

查看版本:$ git tag
創(chuàng)建版本:$ git tag [name]
刪除版本:$ git tag -d [name]
查看遠(yuǎn)程版本:$ git tag -r
創(chuàng)建遠(yuǎn)程版本(本地版本push到遠(yuǎn)程):$ git push origin [name]
刪除遠(yuǎn)程版本:$ git push origin :refs/tags/[name]
合并遠(yuǎn)程倉庫的tag到本地:$ git pull origin --tags
上傳本地tag到遠(yuǎn)程倉庫:$ git push origin --tags
創(chuàng)建帶注釋的tag:$ git tag -a [name] -m 'yourMessage'

4) 子模塊(submodule)相關(guān)操作命令

添加子模塊:$ git submodule add [url] [path]
如:$git submodule add git://github.com/soberh/ui-libs.git src/main/webapp/ui-libs
初始化子模塊:$ git submodule init ----只在首次檢出倉庫時(shí)運(yùn)行一次就行
更新子模塊:$ git submodule update ----每次更新或切換分支后都需要運(yùn)行一下
刪除子模塊:(分4步走哦)

  1. $ git rm --cached [path]
  2. 編輯“.gitmodules”文件,將子模塊的相關(guān)配置節(jié)點(diǎn)刪除掉
  3. 編輯“ .git/config”文件,將子模塊的相關(guān)配置節(jié)點(diǎn)刪除掉
  4. 手動(dòng)刪除子模塊殘留的目錄

5)忽略一些文件、文件夾不提交

在倉庫根目錄下創(chuàng)建名稱為“.gitignore”的文件,寫入不需要的文件夾名或文件,每個(gè)元素占一行即可,如
target
bin
*.db

=====================
Git 常用命令
git branch 查看本地所有分支
git status 查看當(dāng)前狀態(tài)
git commit 提交
git branch -a 查看所有的分支
git branch -r 查看本地所有分支
git commit -am "init" 提交并且加注釋
git remote add origin git@192.168.1.119:ndshow
git push origin master 將文件給推到服務(wù)器上
git remote show origin 顯示遠(yuǎn)程庫origin里的資源
git push origin master:develop
git push origin master:hb-dev 將本地庫與服務(wù)器上的庫進(jìn)行關(guān)聯(lián)
git checkout --track origin/dev 切換到遠(yuǎn)程dev分支
git branch -D master develop 刪除本地庫develop
git checkout -b dev 建立一個(gè)新的本地分支dev
git merge origin/dev 將分支dev與當(dāng)前分支進(jìn)行合并
git checkout dev 切換到本地dev分支
git remote show 查看遠(yuǎn)程庫
git add .
git rm 文件名(包括路徑) 從git中刪除指定文件
git clone git://github.com/schacon/grit.git 從服務(wù)器上將代碼給拉下來
git config --list 看所有用戶
git ls-files 看已經(jīng)被提交的
git rm [file name] 刪除一個(gè)文件
git commit -a 提交當(dāng)前repos的所有的改變
git add [file name] 添加一個(gè)文件到git index
git commit -v 當(dāng)你用-v參數(shù)的時(shí)候可以看commit的差異
git commit -m "This is the message describing the commit" 添加commit信息
git commit -a -a是代表add,把所有的change加到git index里然后再commit
git commit -a -v 一般提交命令
git log 看你commit的日志
git diff 查看尚未暫存的更新
git rm a.a 移除文件(從暫存區(qū)和工作區(qū)中刪除)
git rm --cached a.a 移除文件(只從暫存區(qū)中刪除)
git commit -m "remove" 移除文件(從Git中刪除)
git rm -f a.a 強(qiáng)行移除修改后文件(從暫存區(qū)和工作區(qū)中刪除)
git diff --cached 或 $ git diff --staged 查看尚未提交的更新
git stash push 將文件給push到一個(gè)臨時(shí)空間中
git stash pop 將文件從臨時(shí)空間pop下來


git remote add origin git@github.com:username/Hello-World.git
git push origin master 將本地項(xiàng)目給提交到服務(wù)器中


git pull 本地與服務(wù)器端同步

git push (遠(yuǎn)程倉庫名) (分支名) 將本地分支推送到服務(wù)器上去。
git push origin serverfix:awesomebranch


git fetch 相當(dāng)于是從遠(yuǎn)程獲取最新版本到本地,不會(huì)自動(dòng)merge
git commit -a -m "log_message" (-a是提交所有改動(dòng),-m是加入log信息) 本地修改同步至服務(wù)器端 :
git branch branch_0.1 master 從主分支master創(chuàng)建branch_0.1分支
git branch -m branch_0.1 branch_1.0 將branch_0.1重命名為branch_1.0
git checkout branch_1.0/master 切換到branch_1.0/master分支
du -hs


mkdir WebApp
cd WebApp
git init
touch README
git add README
git commit -m 'first commit'
git remote add origin git@github.com:daixu/WebApp.git
git push -u origin master

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

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

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