文章參考自:
一、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如沒有-m引數,則會在提交後使用系統預設文字編輯器輸入本次提交的文字說明將檔案納入版本控制 git add 《檔名》
提交更改 git commit -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=format:"%h - %an, %ar : %s" 定製顯示格式引數: --pretty=oneline 結果顯示在一行
%h 提交物件(commit)的完整雜湊字串log其他引數%h 提交物件的簡短雜湊字串
%t 樹物件(tree)的完整雜湊字串
%t 樹物件的簡短雜湊字串
%p 父物件(parent)的完整雜湊字串
%p 父物件的簡短雜湊字串
%an 作者(author)的名字
%ae 作者的電子郵件位址
%ad 作者修訂日期(可以用 -date= 選項定製格式)%ar 作者修訂日期,按多久以前的方式顯示
%cn 提交者(committer)的名字
%ce 提交者的電子郵件位址
%cd 提交日期
%cr 提交日期,按多久以前的方式顯示
%s 提交說明
-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預設情況下,clone命令實質是在本地新建master分支然後同步遠端倉庫的master分支$ git remote (-v) 列出所有已獲得的遠端倉庫(顯示倉庫的網路位址)
$ git remote add [shortname] [url] 新增名為shortname的網路位址為url的遠端倉庫
$ git fetch [shortname] 從shortname倉庫拉取本地沒有的資料 fetch只拉取資料,不會進行分支合併
$ git pull 自動抓取資料,將遠端倉庫分支合併到當前分支
$ 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 是集中式版本控制系統,版本庫是放在 伺服器的,而幹活的時候,用的都是自己的電腦,所以首先要從...