1. 程式人生 > >Git的一些常用命令,及.gitignore的配置

Git的一些常用命令,及.gitignore的配置

要很好的掌握Git,先要明白四個名詞概念:

  1. Workspace(工作區):新新增的,和修改的未add操作的。
  2. Stage(暫存區):add操作過後,會進入暫存區。
  3. Repository(本地倉庫):commit操作後,會進入本地倉庫。
  4. 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命令這裡就不添加了,這些是比較常用到的,遇到常用的再補充,有問題可以留言,會及時改正,歡迎拍磚,多多指教….