Git 管理專案

2022-06-13 16:30:12 字數 2070 閱讀 9524

在專案中時常會有一些配置檔案,這些配置檔案必須存在於專案當中但各個成員之間並不需要保持一致。而且因為大家的執行環境不同等原因,大家都需要對其進行修改,但不應該將這些配置檔案提交上去,因為這會影響到別人。

比如乙個專案中的 .classpath 檔案,每個人的專案中都必須要有這麼乙個檔案才能執行,而每個人的 classpath 檔案內容都不需要保持一致,如果成員將自己本地的 .classpath 檔案提交上去將會對別人造成不便。此時我們應該如何管理這些配置檔案呢?

如果直接在 .gitignore 檔案中設定忽略這些檔案,那麼一開始就不能將這些配置檔案提交至遠端倉庫,因為 .gitignore 不能忽略已經被追蹤(track)過的檔案,這樣的話每個人轉殖專案後都需要新建配置檔案。如果不設定忽略,那麼每個人都可能會將自己本地的配置檔案修改提交上去,這可能會導致衝突,並且其他人根本就不需要獲知你的配置檔案修改,而你將修改提交上去將會對別人有害而無益。

解決方法有下面兩種:

這種方法是遠端倉庫中配置檔案已經存在,每個人轉殖專案時本地都會有配置檔案並且都會對其進行修改。此時如果我們直接在 .gitigore 檔案中設定忽略該配置檔案的話是沒有效果的。因為 .gitignore 只能忽略那些原來沒有被追蹤(track)過的檔案,如果該檔案之前已經被納入了版本管理中,則修改 .gitignore 對其不生效。git 之前已經新增到了版本庫中的檔案,即使後面再在 .gitignore 檔案中新增忽略該檔案,在本地中對該檔案進行修改仍會看到修改狀態,並且會提交上去。

這時我們可以通過 git 命令來設定忽略該檔案的提交,也就是忽略該檔案在本地的修改。

可以使用以下命令來忽略該檔案的本地修改。

git update-index --skip-worktree path   //在path處輸入檔案目錄
使用這個命令,時間久了,可能會忘記自己忽略過哪些檔案,這時候可以使用` git ls-files -v . | grep "^s" `命令找出來忽略過的檔案。

git ls-files -v . | grep "^s"    //使用這個命令找出之前設定過忽略的檔案
不想繼續忽略該檔案時,使用` git update-index --no-skip-worktree `命令,來讓git不再忽略該檔案。

git update-index --no-skip-worktree path  //設定不再忽略

在上圖中,我將 mockjson.js 檔案設定了忽略本地修改,此時可以檢視到該檔案在忽略列表裡,並且在設定之後檢視狀態就不會看到該檔案的修改狀態。該檔案的本地修改仍會儲存,但是並不會提交到版本中。

或者使用下面的命令也可以設定忽略

git update-index --assume-unchanged path    在path處輸入要忽略的檔案。
可參考:

這時候你可能就需要先取消對該配置檔案的忽略,然後暫存、提交,再拉取、解決衝突,在解決完後你仍然不應該將配置檔案推送,所以你應該再次設定忽略,比較繁瑣。

git 對於配置檔案的管理,通常都會把乙個通用的模擬配置檔案(比如後面加個 .dist 或者 .bak 之類的字尾,這些檔案對專案本身並不會有影響)作為備份放在遠端倉庫中,每個人都會將這個模擬的配置檔案轉殖下來,並且可以基於這個模擬的配置檔案來生成乙個真實的配置檔案。在 .gitignore 檔案中我們需要設定忽略真實的配置檔案,這樣每個人都可以在本地對這個真實的配置檔案進行修改,但並不會提交,所以對其他人不會造成影響,這也是 git 對於專案的配置檔案比較通用的管理方式。

例項:假設 local.js 是專案執行所需要的乙個配置檔案,每個人都可以對其進行修改並且無需保持一致。此時我們可以建立乙個 local.default.js 檔案放在遠端倉庫中,然後在 .gitignore 檔案中設定忽略 local.js 檔案。local.default.js 檔案的內容是 local.js 中各自比較通用的內容,每個人都可以基於這些內容來編輯各自的 local.js 檔案。每個開發者在拉取專案後都需要在本地手動建立 local.js 檔案來保證專案的正常執行,不過因為 .gitignore 檔案已經設定了忽略,所以不會將這個檔案提交上去,也就不會對別人造成影響。

Git專案管理

操作步驟 1.git init 建立本地git檔案 2.git add 專案 儲存在暫存區 3.git status 檢視當前版本庫的狀態 4.git commit m 提交日誌 5.git log 檢視當前提交的版本號 6.new responsitory 遠端建立倉庫 7.git remote ...

git管理專案

首次建立倉庫並首次提交 在專案過程中,做完乙個模組應該新建乙個分支,然後提交 到該分支中,具體的一些步驟如下 git checkout b user 建立 b 乙個新分支,並切換 checkout 到該分支 git branch 檢視所有分支和正處在的分支 git add 將檔案新增到暫存區 git...

git管理專案命令

git status 檢視當前改動過的 git checkout b 分支名 建立分支 git diff 比較本地和遠端 修改後的差異 git pull 將遠端專案更新到本地 git add 儲存新的新增和修改 將本地寫好的 新增到當前分支上 git reset head 路徑 檔名 撤回對 剛新增...