溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Linux系統(tǒng)下Git操作命令總結(jié)

發(fā)布時間:2021-08-04 21:27:07 來源:億速云 閱讀:172 作者:chen 欄目:系統(tǒng)運維

本篇內(nèi)容主要講解“Linux系統(tǒng)下Git操作命令總結(jié)”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“Linux系統(tǒng)下Git操作命令總結(jié)”吧!

1.顯示當(dāng)前的配置信息

代碼如下:


git config --list


2. 創(chuàng)建repo
從別的地方獲取

代碼如下:


git clone git://git.kernel.org/pub/scm/git/git.git


自己建立

代碼如下:


mkdir test
cd test
git init


 
3. 顯示狀態(tài)

代碼如下:

git status


 
4. commit
git add file.1 file.2 先增加文件,增加到index中。這樣commit的時候才知道要commit哪些文件。
或者

代碼如下:

git add -p

用來interactively選擇哪些改變需要被commit

代碼如下:

git commit -m "log message"


 
或者

代碼如下:

git commit -a

自動檢查應(yīng)該commit什么文件。如果是新增的文件,仍然要使用git add來添加。
 
5. 顯示以前的工作

代碼如下:

git log

輸出格式

代碼如下:

git log

代碼如下:

git log -p

     顯示patch

代碼如下:

git log --stat

  顯示改動的一個總結(jié)

代碼如下:

git log --graph

  只顯示當(dāng)前branch的

代碼如下:

git log --graph --all

  顯示所有branch的

代碼如下:

git log --graph --all --decorate

顯示branch的名字

代碼如下:


git log --pretty=oneline, short, full, fuller

輸出的log 形式不同

代碼如下:


git log --pretty=format:"%h - %an, %ar : %s"

按照指定的格式輸出。
關(guān)于--pretty的其他選項和具體的format格式,參考 git log --help中PRETTY FORMAT這部分。

代碼如下:


git log --follow file.c


這個功能很有意思,尤其是當(dāng)file.c被移動后。
通常我們會移動某個文件到某個目錄下。如果這么做,git log是不能顯示目錄移動前的記錄的。
那就加上 --follow吧。


git log的篩選
git log -2 -p   顯示最近兩次commit的log 和 diff
git log --author="Author Name" 篩選特定作者的log
git log --since="2012-2-23" --before="2012-2-24" 篩選時間段
git log --grep="key word" 在commit 的message中查找關(guān)鍵字
git log branch --not master 查看在branch上的,但不在master上的記錄。

git log -S"func_name"  查找某個字符出現(xiàn),或者移出的commit。 比如可以查找一個函數(shù)是什么時候添加,或者刪除的。

git show sha1   這個sha1是每個commit的sha1,這樣顯示某個commit的完全信息,包括diff
 
6. 撤銷改動

代碼如下:


git checkout -- file.1


撤銷了file.1的這次改動。只是撤銷了沒有staged的改動.
中間的 -- 表明了這是一個文件 而不是一個branch的名字

代碼如下:


git reset --hard HEAD


撤銷了所有沒有commit的改動,包括了stage的和沒有stage的。
這條命令的結(jié)果一樣
git checkout HEAD file.1
包括了staged 和沒有staged的都會清除。

有時候我們發(fā)現(xiàn),之前做個一個commit有問題,不想要,想要去掉。
git revert HEAD      自動得重新做一個commit,將最后一次的commit返回回來。
git revert HEAD^     自動得重新做一個commit,將最后第二次的commit 返回回來。
7. 刪除一個commit

代碼如下:


git reset --hard HEAD~1


刪除了最近的commit

8. 修改最近的一個commit

代碼如下:


git commit --amend


 
7.顯示所做的改動

代碼如下:


git diff


顯示所有的改動。 沒有add到index中的。

代碼如下:


git diff --staged或者 git diff --cached


顯示staged改動,也就是add的東東,也就是將要commit的東東。

代碼如下:


git diff commit1 commit2


顯示這兩個commit之間的變動, 從commit1到commit2的變動。

代碼如下:


git diff commit1..commit2


兩個點,效果跟上面的一樣

代碼如下:


git diff commit1...commit2


三個點,表示的是發(fā)生在commit2分支,一直到commit1和commit2共同父親的變化。

代碼如下:


git blame -C file1.c


顯示文件具體的改動。。。。恩,好像是用來找是誰的錯?

代碼如下:


git blame -Ln,m file1.c


查看n,m兩行間的改動。

代碼如下:


git blame commit1~1 -Ln,m file1.c


查看commit1版本前的改動. 追查之前的log。

代碼如下:


git blame commit1~1 -Ln,m -- old/file.c


如果這個文件被重命名過,或者移動過位置,就要輸入舊的文件的名字。
而且一定要加上 -- , 一定。
 
8. 刪除某個文件

代碼如下:


git rm file-name


從庫和當(dāng)前的working directory中刪掉這個文件

代碼如下:


git rm --cached file-name


只從庫中刪除,保留當(dāng)前的本地文件。


9. 重命名一個文件

代碼如下:


git mv file file-new


10. 應(yīng)用patch

代碼如下:


git apply patch-file


這樣做從patch-file中應(yīng)用這個patch。 效果和patch命令類似。
但是好處是,git apply要么成功,要么不成功。不想patch,有可能有部分的patch打上了,但是有的沒有打上。
git apply后,并沒有自動生成一個commit.


git apply --check  可以用來檢測這個patch 是不是會產(chǎn)生沖突或者失敗。

代碼如下:


git am patch-file


這是專門為git 設(shè)計的命令。 patch-file是通過git format-patch 生成的。
其中包含了作者信息和簡單描述。
git am后,會自動的生成一個commit.

代碼如下:


git am --resolved


git am 過程中可能會有conflict. 如過遇到conflict, 那就需要手動修改code, git add 后
用git am --resolved


11 刪除一些沒有g(shù)it add的文件;

代碼如下:


git clean


參數(shù)
-n 顯示將要刪除的文件和目錄
-f 刪除文件
-df 刪除文件和目錄

代碼如下:


git clean -df alps/

git remote


git是一個分布式代碼管理工具,所以可以支持多個倉庫,在git里,服務(wù)器上的倉庫在本地稱之為remote。
直接clone一個倉庫:

代碼如下:


$: git clone git@search.ued.taobao.net:projects/search.git


另外一種clone方式:

代碼如下:


# 創(chuàng)建目錄初始化本地倉庫
$: mkdir search && cd search
$: git init
# 添加遠(yuǎn)程倉庫路徑
$: git remote add github git@github.com:yyfrankyy/search.git
# 實際上,pull 就是 fetch + merge
$: git pull github --all --tags


把工作目錄遷移到github上面:

代碼如下:


$: git remote add github git@github.com:yyfrankyy/search.git
$: git push github --all --tags


顯示所有的遠(yuǎn)程倉庫

代碼如下:


$: git remote -v
origin git@search.ued.taobao.net:projects/search.git (fetch)
origin git@search.ued.taobao.net:projects/search.git (push)
github git@github.com:yyfrankyy/search.git (fetch)
github git@github.com:yyfrankyy/search.git (push)


重命名遠(yuǎn)程倉庫

代碼如下:


$: git remote rename github gh
$: git remote
origin
gh


刪除遠(yuǎn)程倉庫

代碼如下:


$: git remote rm github
$: git remote
origin


從遠(yuǎn)程倉庫抓取數(shù)據(jù),更新本地倉庫:

代碼如下:


$: git fetch origin


remote: Counting objects: 58, done.
remote: Compressing objects: 100% (41/41), done.
remote: Total 44 (delta 24), reused 1 (delta 0)
Unpacking objects: 100% (44/44), done.
From git://search.ued.taobao.net:projects/search.git
 * [new branch]      product     -> origin/product
查看遠(yuǎn)程倉庫信息,可用于跟蹤別人的push:

代碼如下:


$: git remote show origin


* remote origin
  Fetch URL: git@search.ued.taobao.net:projects/search.git
  Push  URL: git@search.ued.taobao.net:projects/search.git
  HEAD branch: master
  Remote branches:
    master  tracked
    p4popt  tracked
    prepub  tracked
    product tracked
  Local branches configured for 'git pull':
    master  merges with remote master
    p4popt  merges with remote p4popt
    prepub  merges with remote prepub
    product merges with remote product
  Local refs configured for 'git push':
    master  pushes to master  (up to date)
    p4popt  pushes to p4popt  (up to date)
    prepub  pushes to prepub  (up to date)
    product pushes to product (up to date)

到此,相信大家對“Linux系統(tǒng)下Git操作命令總結(jié)”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI