要很好的掌握Git吩屹,先要明白四個名詞概念:
- Workspace(工作區(qū)):新添加的,和修改的未add操作的拧抖。
- Stage(暫存區(qū)):add操作過后煤搜,會進入暫存區(qū)。
- Repository(本地倉庫):commit操作后唧席,會進入本地倉庫擦盾。
- Remote(遠程倉庫):push操作后,會提交到遠程倉庫淌哟。
Git的配置:
# 顯示當前的Git配置
$ git config --list
#設(shè)置用戶名和郵箱迹卢,即提交代碼時的用戶信息
$ git config [--global] user.name "[name]"
$ git config [--global] user.email "[email address]"
添加/刪除文件(到暫存區(qū),即add操作)
#可以添加一個或多個
$ git add <file1> <file2>...
#添加所有修改的和新添加的
$ git add .
#另一種寫法
$ git add -A
#添加指定目錄
$ git add <dirname>
#由暫存區(qū)恢復(fù)到工作區(qū)(發(fā)現(xiàn)提交錯了徒仓,退回一步)
$ git reset HEAD <file>
#恢復(fù)上一次add提交的所有file
$ git reset HEAD
#撤銷修改操作腐碱,恢復(fù)到修改之前的,撤銷add后位于工作區(qū)下進行的
$ git checkout -- <file>
#刪除文件,并將文件放入暫存區(qū)
$ git rm <file1> <file2>
#改文件名,并將修改后的文件放入暫存區(qū)
$ git mv <file-original> <file-rename>
提交到本地倉庫(commit操作)
#提交暫存區(qū)的所有文件(后面的message不可缺少)
$ git commit -m <message>
#提交暫存區(qū)的指定文件
$ git commit <file1> <file2> -m <message>
分支操作(branch)
# 列出所有本地分支
$ git branch
# 列出所有遠程分支
$ git branch -r
# 列出所有本地分支和遠程分支
$ git branch -a
# 新建一個分支症见,并切換到該分支
$ git checkout -b [branch]
# 切換到指定分支喂走,并更新工作區(qū)
$ git checkout [branch-name]
#從遠程分支檢出指定分支
$ git clone -b <branchname> <master>
# 合并指定分支到當前分支(主分支合并自定義分支)
$ git merge [branch]
# 刪除分支
$ git branch -d [branch-name]
# 刪除遠程分支
$ git push origin --delete [branch-name]
$ git branch -dr [remote/branch]
查看信息:
# 顯示有變更的文件
$ git status
# 顯示當前分支的版本歷史
$ git log
.gitignore的配置:
緣由:當我們導(dǎo)入一個git項目時,開發(fā)環(huán)境會改變里面的一些配置谋作,當我們修改完代碼后实蔽,add纽疟,commit操作后,系統(tǒng)更改的配置信息婚惫,并不想去提交玫膀,這個時候就會用到這個配置萤悴,配置完成后访圃,才更好的去add .和commit -m去操作理郑。
#要在Git BashHere這里面操作
user@amelon MINGW64 ~/Desktop/git (master)
$ touch .gitignore
user@amelon MINGW64 ~/Desktop/git (master)
$
常用的配置:
eg1:
/build
/.idea
/.gradle
/local.properties
.gitignore
eg2:
# Java class files
*.class
# Generated files
bin/
gen/
# Gradle files
.gradle/
build/
# Local configuration file (sdk path, etc)
local.properties
# Proguard folder generated by Eclipse
proguard/
#Android Studio
build/
# Intellij project files
*.iml
*.ipr
*.iws
.idea/
#gradle
.gradle/
用法規(guī)則和語義:
# 此為注釋 – 將被 Git 忽略
*.a # 忽略所有 .a 結(jié)尾的文件
!lib.a # 但 lib.a 除外
/TODO # 僅僅忽略項目根目錄下的 TODO 文件,不包括 subdir/TODO
build/ # 忽略 build/ 目錄下的所有文件
doc/*.txt # 會忽略 doc/notes.txt 但不包括 doc/server/arch.txt
注意:如果你是新加的攒钳,這里需要注意的是.gitignore只能作用于沒有被track的文件帮孔,也就是工作區(qū)的文件雷滋,對于add不撑,commit操作后的文件是沒有作用的,這個時候需要先把本地的緩存刪除晤斩,在去提交焕檬,就可以實現(xiàn)忽略整個倉庫文件了。
git rm -r --cached .
git add .
git commit -m 'update .gitignore'
結(jié)論:還有不少git命令這里就不添加了澳泵,這些是比較常用到的实愚,遇到常用的再補充,有問題可以留言兔辅,會及時改正腊敲,歡迎拍磚,多多指教….
轉(zhuǎn)載
http://blog.csdn.net/zxyudia/article/details/67633321