国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Linux > 正文

Linux系統下Git操作命令整理

2020-07-10 11:17:31
字體:
來源:轉載
供稿:網友

1.顯示當前的配置信息

復制代碼
代碼如下:

git config --list

2. 創建repo
從別的地方獲取
復制代碼
代碼如下:

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


自己建立

復制代碼
代碼如下:

mkdir test
cd test
git init

 
3. 顯示狀態

復制代碼
代碼如下:
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
自動檢查應該commit什么文件。如果是新增的文件,仍然要使用git add來添加。
 
5. 顯示以前的工作

復制代碼
代碼如下:
git log
輸出格式

復制代碼
代碼如下:
git log


復制代碼
代碼如下:
git log -p
     顯示patch

復制代碼
代碼如下:
git log --stat
  顯示改動的一個總結

復制代碼
代碼如下:
git log --graph
  只顯示當前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"
按照指定的格式輸出。
關于--pretty的其他選項和具體的format格式,參考 git log --help中PRETTY FORMAT這部分。


復制代碼
代碼如下:

git log --follow file.c

這個功能很有意思,尤其是當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中查找關鍵字
git log branch --not master 查看在branch上的,但不在master上的記錄。

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

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

復制代碼
代碼如下:

git checkout -- file.1

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

復制代碼
代碼如下:

git reset --hard HEAD

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

有時候我們發現,之前做個一個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

三個點,表示的是發生在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

從庫和當前的working directory中刪掉這個文件
復制代碼
代碼如下:

git rm --cached file-name

只從庫中刪除,保留當前的本地文件。


9. 重命名一個文件

復制代碼
代碼如下:

git mv file file-new


10. 應用patch

復制代碼
代碼如下:

git apply patch-file

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


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


復制代碼
代碼如下:

git am patch-file

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


復制代碼
代碼如下:

git am --resolved

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


11 刪除一些沒有git add的文件;

復制代碼
代碼如下:

git clean

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


復制代碼
代碼如下:

git clean -df alps/

git remote


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

復制代碼
代碼如下:

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

另外一種clone方式:
復制代碼
代碼如下:

# 創建目錄初始化本地倉庫
$: mkdir search && cd search
$: git init
# 添加遠程倉庫路徑
$: 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

顯示所有的遠程倉庫
復制代碼
代碼如下:

$: 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)

重命名遠程倉庫
復制代碼
代碼如下:

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

刪除遠程倉庫
復制代碼
代碼如下:

$: git remote rm github
$: git remote
origin

從遠程倉庫抓取數據,更新本地倉庫:
復制代碼
代碼如下:

$: 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
查看遠程倉庫信息,可用于跟蹤別人的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)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 大丰市| 大宁县| 罗定市| 元氏县| 周至县| 三原县| 黎川县| 扶风县| 绥中县| 始兴县| 鄂托克旗| 四子王旗| 邳州市| 乌苏市| 阳朔县| 定南县| 韶关市| 绍兴县| 石林| 东乡族自治县| 施秉县| 凭祥市| 获嘉县| 屯门区| 漠河县| 旬阳县| 安陆市| 巴青县| 九台市| 兴国县| 嵩明县| 清水县| 开鲁县| 兴义市| 漳州市| 平昌县| 肥乡县| 康平县| 濮阳县| 武陟县| 封开县|