Git的一些常用命令,及.gitignore的配置
阿新 • • 發佈:2019-02-04
要很好的掌握Git,先要明白四個名詞概念:
- Workspace(工作區):新新增的,和修改的未add操作的。
- Stage(暫存區):add操作過後,會進入暫存區。
- Repository(本地倉庫):commit操作後,會進入本地倉庫。
- Remote(遠端倉庫):push操作後,會提交到遠端倉庫。
Git的配置:
# 顯示當前的Git配置
$ git config --list
#設定使用者名稱和郵箱,即提交程式碼時的使用者資訊
$ git config [--global] user.name "[name]"
$ git config [--global] user.email "[email address]"
新增/刪除檔案(到暫存區,即add操作)
#可以新增一個或多個
$ git add <file1> <file2>...
#新增所有修改的和新新增的
$ git add .
#另一種寫法
$ git add -A
#新增指定目錄
$ git add <dirname>
#由暫存區恢復到工作區(發現提交錯了,退回一步)
$ git reset HEAD <file>
#恢復上一次add提交的所有file
$ git reset HEAD
#撤銷修改操作,恢復到修改之前的,撤銷add後位於工作區下進行的
$ git checkout -- <file>
#刪除檔案,並將檔案放入暫存區
$ git rm <file1> <file2>
#改檔名,並將修改後的檔案放入暫存區
$ git mv <file-original> <file-rename>
提交到本地倉庫(commit操作)
#提交暫存區的所有檔案(後面的message不可缺少)
$ git commit -m <message>
#提交暫存區的指定檔案
$ git commit <file1> <file2> -m <message>
分支操作(branch)
# 列出所有本地分支
$ git branch
# 列出所有遠端分支
$ git branch -r
# 列出所有本地分支和遠端分支
$ git branch -a
# 新建一個分支,並切換到該分支
$ git checkout -b [branch]
# 切換到指定分支,並更新工作區
$ 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的配置:
緣由:當我們匯入一個git專案時,開發環境會改變裡面的一些配置,當我們修改完程式碼後,add,commit操作後,系統更改的配置資訊,並不想去提交,這個時候就會用到這個配置,配置完成後,才更好的去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/
用法規則和語義:
# 此為註釋 – 將被 Git 忽略
*.a # 忽略所有 .a 結尾的檔案
!lib.a # 但 lib.a 除外
/TODO # 僅僅忽略專案根目錄下的 TODO 檔案,不包括 subdir/TODO
build/ # 忽略 build/ 目錄下的所有檔案
doc/*.txt # 會忽略 doc/notes.txt 但不包括 doc/server/arch.txt
注意:如果你是新加的,這裡需要注意的是.gitignore只能作用於沒有被track的檔案,也就是工作區的檔案,對於add,commit操作後的檔案是沒有作用的,這個時候需要先把本地的快取刪除,在去提交,就可以實現忽略整個倉庫檔案了。
git rm -r --cached .
git add .
git commit -m 'update .gitignore'
結論:還有不少git命令這裡就不添加了,這些是比較常用到的,遇到常用的再補充,有問題可以留言,會及時改正,歡迎拍磚,多多指教….