- 設(shè)置全局信息 git config --global
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
- --global 參數(shù)代表機(jī)器上所有的 Git 倉庫都使用這個(gè)配置
會(huì)保存到
C:\Users\Classichu\.gitconfig
文件里
[user]
name = louisgeek
email = louisgeek@qq.com
[core]
quotepath = false
[gui]
encoding = utf-8
[i18n "commit"]
encoding = utf-8
[i18n]
logoutputencoding = utf-8
[http]
postBuffer = 524288000
2.查看當(dāng)前全局配置 git config
3.創(chuàng)建版本庫 git init
Administrator@LouisGeek MINGW64 /d/LouisGit
$ mkdir hello_git //創(chuàng)建目錄文件
Administrator@LouisGeek MINGW64 /d/LouisGit
$ cd hello_git //切換目錄文件
Administrator@LouisGeek MINGW64 /d/LouisGit/hello_git
$ pwd
/d/LouisGit/hello_git //查看目錄路徑
Administrator@LouisGeek MINGW64 /d/LouisGit/hello_git
$ git init //初始化當(dāng)前目錄為版本庫
Initialized empty Git repository in D:/LouisGit/hello_git/.git/
4.添加文件 git add
Administrator@LouisGeek MINGW64 /d/LouisGit/hello_git (master)
$ git add hello.txt // git add . 添加所有文件
5.提交文件 git commit
$ git commit -m "add hello"
[master (root-commit) 36a3976] add hello
1 file changed, 2 insertions(+)
create mode 100644 hello.txt
6.查看狀態(tài) git status
Administrator@LouisGeek MINGW64 /d/LouisGit/hello_git (master)
$ git status
On branch master
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: hello.txt
no changes added to commit (use "git add" and/or "git commit -a")
7.查看不同 git diff
Administrator@LouisGeek MINGW64 /d/LouisGit/hello_git (master)
$ git diff
git diff HEAD -- hello.txt //命令查看工作區(qū)和版本庫最新版本區(qū)別
8.查看提交的日志記錄 git log
Administrator@LouisGeek MINGW64 /d/LouisGit/hello_git (master)
$ git log
commit 36a397685948c3067a7c0131b188ae02968d1a91
Author: louisgeek <louisgeek@aliyun.com>
Date: Fri Feb 10 23:33:11 2017 +0800
add hello
簡潔查看日志 git log --pretty=oneline
Administrator@LouisGeek MINGW64 /d/LouisGit/hello_git (master)
$ git log --pretty=oneline
36a397685948c3067a7c0131b188ae02968d1a91 add hello
9.回退到之前的版本 git reset
在 Git 中酸茴,用 HEAD 表示當(dāng)前版本鸵贬,也就是最新的提交,上一個(gè)版本就是HEAD渐行,上上一個(gè)版本就是HEAD^,當(dāng)然往上 100 個(gè)版本寫 100 個(gè)^比較容易數(shù)不過來袖牙,所以寫成 HEAD~100
$ git reset --hard HEAD^ //上一個(gè)版本
$ git reset --hard 3628164 //制定版本編號的那個(gè)版本
查看文件內(nèi)容 cat
Administrator@LouisGeek MINGW64 /d/LouisGit/hello_git (master)
$ cat hello.txt
Git is a distributed version control system.
Git is free software.
10.記錄你的每一次命令
$ git reflog
11.撤銷修改
場景1:當(dāng)你改亂了工作區(qū)某個(gè)文件的內(nèi)容,想直接丟棄工作區(qū)的修改時(shí),用命令
git checkout --hello.txt
場景2:當(dāng)你不但改亂了工作區(qū)某個(gè)文件的內(nèi)容悯恍,還添加到了暫存區(qū)時(shí),想丟棄修改伙狐,分兩步涮毫,第一步用命令
git reset HEAD hello.txt
就回到了場景 1,第二步按場景 1 操作贷屎。
場景3:已經(jīng)提交了不合適的修改到版本庫時(shí)罢防,想要撤銷本次提交,參考【回退到之前的版本】
12.刪除文件 rm
rm hello.txt
13.關(guān)聯(lián)遠(yuǎn)程庫 git remote add
git remote add origin git@github.com:xxx/xxx.git
14.內(nèi)容推送到遠(yuǎn)程 git push
git push -u origin master //把分支 master 推送到遠(yuǎn)
//加上了-u參數(shù)豫尽,Git 不但會(huì)把本地的 master 分支內(nèi)容推送的遠(yuǎn)程新的 master 分支篙梢,還會(huì)把本地的 master 分支和遠(yuǎn)程的 master 分支關(guān)聯(lián)起來,在以后的推送或者拉取時(shí)就可以簡化命令美旧。
git push origin master //把本地master分支的最新修改推送
刪除關(guān)聯(lián)
git remote rm origin
15.克隆遠(yuǎn)程版本
git clone git@github.com:michaelliao/gitskills.git
16.創(chuàng)建分支 git checkout -b
git checkout -b dev
//-b參數(shù)表示創(chuàng)建并切換渤滞,相當(dāng)于以下兩條命令:
$ git branch dev
$ git checkout dev
17.查看分支信息 git branch
git branch
18.切換分支 git checkout
git checkout master
19.合并分支 git merge
git merge dev //把dev的分支內(nèi)容合并到master上
//Fast-forward信息,Git 告訴我們榴嗅,這次合并是“快進(jìn)模式”妄呕,也就是直接把 master 指向 dev 的當(dāng)前提交坦报,所以合并速度非巢缶粒快。
20.刪除分支 git branch -d
git branch -d dev
21.查看分支圖
git log --graph命令可以看到分支合并圖
22.合并分支時(shí)澳眷,加上--no-ff參數(shù)就可以用普通模式合并唠粥,合并后的歷史有分支疏魏,能看出來曾經(jīng)做過合并,而 fast forward 合并就看不出來曾經(jīng)做過合并晤愧。
準(zhǔn)備合并 dev 分支大莫,請注意--no-ff參數(shù),表示禁用 Fast forward
22.保存工作現(xiàn)場
git stash
23.查看保存的工作現(xiàn)場
git stash list
24.恢復(fù)工作現(xiàn)場
git stash pop
相當(dāng)于下面兩個(gè)命令
用git stash apply恢復(fù)官份,但是恢復(fù)后只厘,stash 內(nèi)容并不刪除,
需要用git stash drop來刪除
可以多次 stash舅巷,恢復(fù)的時(shí)候羔味,先用git stash list查看,然后恢復(fù)指定的 stash钠右,用命令:
git stash apply stash@{0}
25.強(qiáng)制刪除分支
git branch -D feature-vulcan
26.查看遠(yuǎn)程庫的信息
git remote
git remote -v //顯示更詳細(xì)的信息
27.創(chuàng)建遠(yuǎn)程分支
創(chuàng)建遠(yuǎn)程 origin 的 dev 分支到本地赋元,于是他用這個(gè)命令創(chuàng)建本地 dev 分支:
$ git checkout -b dev origin/dev
28.指定本地 dev 分支與遠(yuǎn)程 origin/dev 分支的鏈接,根據(jù)提示,設(shè)置 dev 和 origin/dev 的鏈接
$ git branch --set-upstream dev origin/dev
29.打標(biāo)簽
git tag <name> //就可以打一個(gè)新標(biāo)簽
$ git tag v0.9 6224937 //打標(biāo)簽到指定版本
git tag -a v0.1 -m "version 0.1 released" 3628164
// -a指定標(biāo)簽名们陆,-m指定說明文字
30.查看標(biāo)簽
git tag
31.查看標(biāo)簽信息
git show v0.9
32.刪除標(biāo)簽
git tag -d v0.1
33.遠(yuǎn)程標(biāo)簽
命令git push origin <tagname>可以推送本地標(biāo)簽寒瓦;
命令git push origin --tags可以推送全部未推送過的本地標(biāo)簽;
命令git tag -d <tagname>可以刪除本地標(biāo)簽坪仇;
命令git push origin :refs/tags/<tagname>可以刪除遠(yuǎn)程標(biāo)簽
34.配置git
讓 Git 顯示顏色杂腰,會(huì)讓命令輸出看起來更醒目:
$ git config --global color.ui true
35.生成公鑰
$ ssh-keygen -t rsa -C "louisgeek@qq.com" //創(chuàng)建ssh
36.對終端顯示的配置,給文字添加顏色椅文,更易于閱讀
git config --global color.diff auto
git config --global color.status auto
git config --global color.branch auto
37.亂碼設(shè)置(其他方案:http://www.cnblogs.com/wangkongming/p/3821305.html)
$ git config --global core.quotepath false # 顯示 status 編碼
$ git config --global gui.encoding utf-8 # 圖形界面編碼
$ git config --global i18n.commit.encoding utf-8 # 提交信息編碼
$ git config --global i18n.logoutputencoding utf-8 # 輸出 log 編碼
$ export LESSCHARSET=utf-8 # 最后一條命令是因?yàn)?git log 默認(rèn)使用 less 分頁喂很,所以需要 bash 對 less 命令進(jìn)行 utf-8 編碼
附常用命令
Git 全局設(shè)置:
git config --global user.name "louisgeek"
git config --global user.email "louisgeek@qq.com"
創(chuàng)建 git 倉庫:
mkdir test
cd test
git init
touch README.md
git add README.md
git commit -m "first commit"
git remote add origin https://git.oschina.net/louisgeek/test.git
git push -u origin master
已有項(xiàng)目?
cd existing_git_repo
git remote add origin https://git.oschina.net/louisgeek/test.git
git push -u origin master