git裡最有用最經常使用的東西

xiaoxiaokunkunkun發表於2020-12-10

0、最重要的一張圖要記住,對理解git很關鍵

Git本地有三個工作區域:工作目錄(Working Directory)、暫存區(Stage/Index)、資源庫(Repository或Git Directory)。如果在加上遠端的git倉庫(Remote Directory)就可以分為四個工作區域。檔案在這四個區域之間的轉換關係如下:

在這裡插入圖片描述

  • Workspace:工作區,就是你平時存放專案程式碼的地方
  • Index / Stage:暫存區,用於臨時存放你的改動,事實上它只是一個檔案,儲存即將提交到檔案列表資訊
  • Repository:倉庫區(或本地倉庫),就是安全存放資料的位置,這裡面有你提交到所有版本的資料。其中HEAD指向最新放入倉庫的版本
  • Remote:遠端倉庫,託管程式碼的伺服器,可以簡單的認為是你專案組中的一臺電腦用於遠端資料交換

1、先說git最有用最常使用的一個操作操作

當我們已經把file 進行了 add操作 ,然後這時我們又想忽略這個檔案,你就會發現忽略不了。這時可以使用

git rm -r --cached [檔名或者資料夾名字]

先了解git rm -r --cached背後的原理:
1.若檔案存在與stage和repository中時,會將檔案從repository中刪除,並且從stage中刪除,但不會刪除本地的實際檔案,不過由於檔案已經從repository中刪除,檔案會從tracked變成untracked
2.若檔案存在與stage,卻不存在與repository中,會將檔案從stage中刪除,但不會刪除本地的實際檔案。由於repository中本來就沒有這個檔案,所以該檔案一樣會是untracked狀態。

2、在說一下比較常用的git命令的操作

# 在當前目錄新建一個Git程式碼庫
$ git init

# 克隆一個專案和它的整個程式碼歷史(版本資訊)
$ git clone [url]  # https://gitee.com/kuangstudy/openclass.git

#檢視指定檔案狀態
git status [filename]

#檢視所有檔案狀態
git status

# git add .                  新增所有檔案到暫存區
# git commit -m "訊息內容"    提交暫存區中的內容到本地倉庫 -m 提交資訊

# 列出所有本地分支
git branch
# 列出所有遠端分支
git branch -r
# 新建一個分支,但依然停留在當前分支
git branch [branch-name]
# 新建一個分支,並切換到該分支
git checkout -b [branch]
# 合併指定分支到當前分支
git merge [branch]
# 刪除分支
git branch -d [branch-name]
# 刪除遠端分支
git push origin --delete [branch-name]
git branch -dr [remote/branch]
#檢視系統config
git config --system --list
  
#檢視當前使用者(global)配置
git config --global  --list

Git相關的配置檔案:

1)、Git\etc\gitconfig :Git 安裝目錄下的 gitconfig --system 系統級

2)、C:\Users\Administrator\ .gitconfig 只適用於當前登入使用者的配置 --global 全域性

3、再來談談使用.ignore外掛在IDEA中忽略你要提交的檔案

有的時間建立的檔案,不想被提交到版本控制的的選項中。在IDEA中安裝.ignore外掛。建立好了之後:

1.新建.gitignore檔案(後面說配置檔案規則)

2.將不需要提交到版本控制add ignore中

4、在談談.ignore檔案的忽略配置規則

  1. 忽略檔案中的空行或以井號(#)開始的行將會被忽略。

  2. 可以使用Linux萬用字元。例如:星號(*)代表任意多個字元,問號(?)代表一個字元,方括號([abc])代表可選字元範圍,大括號({string1,string2,…})代表可選的字串等。

  3. 如果名稱的最前面有一個感嘆號(!),表示例外規則,將不被忽略。

  4. 如果名稱的最前面是一個路徑分隔符(/),表示要忽略的檔案在此目錄下,而子目錄中的檔案不忽略。

  5. 如果名稱的最後面是一個路徑分隔符(/),表示要忽略的是此目錄下該名稱的子目錄,而非檔案(預設檔案或目錄都忽略)。

    例如:

    #為註釋*.txt        #忽略所有 .txt結尾的檔案,這樣的話上傳就不會被選中!!lib.txt     #但lib.txt除外/temp        #僅忽略專案根目錄下的TODO檔案,不包括其它目錄tempbuild/       #忽略build/目錄下的所有檔案doc/*.txt    #會忽略 doc/notes.txt 但不包括 doc/server/arch.txt
    
    
    # Compiled class file
    *.class
    
    
    # Log file
    *.log
    
    # BlueJ files
    *.ctxt
    
    # Mobile Tools for Java (J2ME)
    .mtj.tmp/
    
    # Package Files #
    *.jar
    *.war
    *.nar
    *.ear
    *.zip
    *.tar.gz
    *.rar
    *.iml
    
    # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
    
    .idea/
    newshop-mall-biz/target/
    newshop-mall-biz/src/test/
    *.gitignore
    
    
    
    

最後在說一個小技巧

怎麼最快速將一個java專案讓git進行管理?

1、先在gitee(或者其他程式碼管理平臺)建立一個倉庫

2、將建立的倉庫clone到本地 -----簡稱遠端倉庫專案

3、建立你的java專案 -----簡稱本地專案

4、然後將c遠端倉庫本專案裡的所有檔案(包括.git隱藏檔案)拷貝到本地專案中,直接全覆蓋

5、這是在idea中你就會發現 多了git的一些push pull commit 等操作(若沒有出現這些圖示)

注:若沒有出現這些圖示(若按照以下操作還未出現git操作等圖示,可能你之前的操作有問題)

1、idea工具類裡面查到 VCS ,下拉選項裡面選擇 Enable Version Control Integration。

2、在彈出框裡面選擇需要的版本管理工具,如選擇Git。

相關文章