GIT學習筆記(一)

2021-09-24 22:43:42 字數 4185 閱讀 9919

文章參考自:

一、git配置檔案

目錄

/etc/gitconfig 對所有使用者生效

~/.gitconfig 只對當前使用者生效

修改個人資訊:

$ git config --global user.name 「name」

$ git config --global user.email name

$ git config --global core.editor emacs

檢視config資訊:

$git config --list

差異分析工具

$ git config --global merge.tool meld

二、git基本命令

新建本地專案

在專案目錄下執行  git init

將檔案納入版本控制  git add 《檔名》

提交更改 git commit -m 『文字說明』

如沒有-m引數,則會在提交後使用系統預設文字編輯器輸入本次提交的文字說明

從遠端倉庫clone專案

$ git clone git://檢查當前檔案狀態

$ git status

檔案修改後,跟蹤修改的檔案,命令執行後,檔案進入暫存區

$ git add 《檔名》

修改檔案後,沒有git add時,使用git status命令將看到暫存區檔案和未跟蹤檔案,此時commit將只提交暫存區檔案

修改後檔案對比

$ git diff    修改後檔案與暫存區對比

$ git diff -cached   暫存區檔案與已經commit檔案對比

忽略檔案

專案目錄下 .gitignore 檔案裡為忽略規則

# 此為注釋 – 將被 git 忽略

*.a       # 忽略所有 .a 結尾的檔案

!lib.a     # 但 lib.a 除外

/todo      # 僅僅忽略專案根目錄下的 todo 檔案,不包括 subdir/todo

build/     # 忽略 build/ 目錄下的所有檔案

doc/*.txt    # 會忽略 doc/notes.txt 但不包括 doc/server/arch.txt

刪除檔案

$ git rm 從工作目錄移除檔案

$ git rm -f 從暫存區和工作目錄移除檔案

$ git rm --cached 從git倉庫裡移除

重新命名檔案

$ git mv 《原檔名》 《新檔名》

等價於下列三條命令:

$ mv 《原檔名》 《新檔名》

$ git rm 《原檔名》

$ git add 《新檔名》

撤銷提交

$ git commit --amend 使用暫存區重新提交,可重新編輯提交日誌

如有檔案忘記提交,可在commit後add,然後再–amend

$ git commit -m 『initial commit』

$ git add forgotten_file

$ git commit --amend

$ git reset head [檔名] 取消快取區里的檔案

$ git checkout – [檔名] 取消對工作目錄中檔案的修改

檢視提交歷史

$ git log

引數:

-p 比較每次提交的差異

-2 只顯示最近兩次提交

–stat 只顯示簡要的增減行統計

–pretty 格式化輸出結果

引數: --pretty=oneline 結果顯示在一行

–pretty=format:"%h - %an, %ar : %s"  定製顯示格式

%h 提交物件(commit)的完整雜湊字串

%h 提交物件的簡短雜湊字串

%t 樹物件(tree)的完整雜湊字串

%t 樹物件的簡短雜湊字串

%p 父物件(parent)的完整雜湊字串

%p 父物件的簡短雜湊字串

%an 作者(author)的名字

%ae 作者的電子郵件位址

%ad 作者修訂日期(可以用 -date= 選項定製格式)%ar 作者修訂日期,按多久以前的方式顯示

%cn 提交者(committer)的名字

%ce 提交者的電子郵件位址

%cd 提交日期

%cr 提交日期,按多久以前的方式顯示

%s 提交說明

log其他引數

-p 按補丁格式顯示每個更新之間的差異。

–stat 顯示每次更新的檔案修改統計資訊。

–shortstat 只顯示 --stat 中最後的行數修改新增移除統計。

–name-only 僅在提交資訊後顯示已修改的檔案清單。

–name-status 顯示新增、修改、刪除的檔案清單。

–abbrev-commit 僅顯示 sha-1 的前幾個字元,而非所有的 40 個字元。

–relative-date 使用較短的相對時間顯示(比如,「2 weeks ago」)。

–graph 顯示 ascii 圖形表示的分支合併歷史。–pretty 使用其他格式顯示歷史提交資訊。可用的選項包括 oneline,

short,full,fuller 和format(後跟指定格式)。

遠端倉庫的使用

$ git clone git://*** 從遠端倉庫clone專案 預設本地倉庫名為origin

$ git remote (-v) 列出所有已獲得的遠端倉庫(顯示倉庫的網路位址)

$ git remote add [shortname] [url] 新增名為shortname的網路位址為url的遠端倉庫

$ git fetch [shortname] 從shortname倉庫拉取本地沒有的資料 fetch只拉取資料,不會進行分支合併

$ git pull 自動抓取資料,將遠端倉庫分支合併到當前分支

預設情況下,clone命令實質是在本地新建master分支然後同步遠端倉庫的master分支

$ git push [remote-name] [branch-name] 從本地將branch-name分支資料推送到remote-name倉庫的對應分支上,前提是有寫許可權,沒有別人正在

同步資料,如果此時伺服器的資料已經經過許多分支的修改,則必須將伺服器上的修改全部fetch到本地後再進行提交

$ git remote show [remote-name] 檢視遠端倉庫的詳細資訊

$ git remote rename [old-name] [new-name] 修改遠端倉庫名稱,此時對應分支名稱也會變更

$ git remote rm [remote-name] 刪除遠端倉庫

標籤

$ git tag 列出現有標籤

$ git tag -a v1.0 -m 『the version 1.0』 打標籤,-a表示打乙個有詳細資訊的標籤,-m表示文字說明,如不加則會彈出文字編輯器

$ git show v1.0 顯示v1.0標籤的詳細內容

$ git tag v1.1 打乙個輕量化標籤

$ git tag -a v1.2 [某次提交記錄的校驗和] 為某次提交記錄補標籤

$ git push origin [版本號] [–tags] 同步某個版本號的標籤/同步所有標籤

學習git筆記(一)

git config global user.name your name git config global user.email email example.com 建立乙個版本庫非常簡單,首先,選擇乙個合適的地方,建立乙個空目錄 mkdir learngit cd learngit pwd u...

git 學習筆記一

本地修改後的內容叫工作區,add後的內容在暫存區,git commit m comit instruction 提交說明 git reset hard head 版本庫回退到上一版本 git reset hard commit id 回到commit對應的版本 如果不知道commitid git r...

Git 學習筆記 一

cvs 始祖,集中式1985年 svn 集大成者,集中式2000年 git geek主流,分布式2005年 github geek社群,託管 2008年 git是目前世界上最先進的分布式版本控制系統.svn 是集中式版本控制系統,版本庫是放在 伺服器的,而幹活的時候,用的都是自己的電腦,所以首先要從...