git使用心得

2022-03-03 09:58:11 字數 2867 閱讀 7800

這篇博文用來記錄我使用git的體會感悟

刪除檔案:

git add test.txt

git commit -m "test.txt"

rm  test.txt  那麼會直接在工作區(也就是我們常說的資料夾)將該檔案刪除,但是在版本庫中,你的test.txt檔案並沒有被刪除,此時用

git checkout -- test.txt  是可以回覆該檔案的

但是如果在此之前你並沒有把該檔案add到緩衝區中(也就是使用git add 命令)或者 commit到版本庫中(也就是使用git commit),對不起,無力回天。

複雜點的情況  如果現在你的暫存區和版本庫中都有乙個同名檔案(暫存區中的同名檔案還沒有commit),那麼此時你此時rm test.txt 然後checkout返回的會優先是暫存區中的檔案而不是版本庫中的檔案

如果你是用的  git rm  則會將工作空間  版本庫中都刪掉 git reset --hard  

一、放棄對git管理的檔案修改

條件:bb.txt檔案已經被git管理

過程:發現bb.txt檔案被修改了,發現改了之後不是自己想要的結果

目的:想恢復到沒有被修改的狀態

解決辦法:

git checkout bb.txt

git放棄對當前資料夾的所有檔案的修改?

git checkout .

二、對沒有被git管理的檔案修改

條件:cc.txt檔案沒有被git管理

過程:新增的檔案太多太紊亂了,

目的:想直接回覆到某個版本

解決辦法:

git reset --hard

git   reset  版本回退  mixed soft hard

出這個錯誤的原因是遠端和本地都有差異 遠端有個readme  在本地沒有,所以要先git pull一下,在git push

git pull origin master(分支)

現在我的理解就是本地檔案目錄(工作目錄),快取區,和git倉庫。快取區是公用的,(任何乙個分支上git add 檔案到快取區,在任何其他分支用git ls-files都可以看見剛剛被其他分支add的檔案,當然在任何乙個分支上移除快取中的這個檔案,也都會反應在其他分支中)可以用git status命令來檢視哪些檔案沒有被跟蹤,另外git add .  這個命令好像不能用了  還是用git add --all來新增所有檔案吧!

當然如果我們如果不小心把一些檔案提交到了快取區,想把他們刪除。那麼我們可以使用git rm --cache 《檔名》命令來,把誤加入快取區的檔案刪除,當然不會刪除工作目錄中的檔案,然後使用git status命令可以看到,剛剛那個檔案已經提示未被跟蹤了。(猜想倉庫中的不會被刪除  檢視倉庫中檔案的命令有誤,用git log 《檔名》可以檢視這個檔案是否在倉庫中)

刪除暫存區和工作區的文 git rm -f 檔名。工作區的檔案也被刪除了。

如果想刪除已經提交到倉庫中的檔案那麼我們就需要使用git reset命令

這個時候,我們必須撤銷版本庫的修改才能解決問題!

git reset有三個選項,--hard、--mixed、--soft。

//僅僅只是撤銷已提交的版本庫,不會修改暫存區和工作區

git reset --soft 版本庫id

//僅僅只是撤銷已提交的版本庫和暫存區,不會修改工作區

git reset --mixed 版本庫id

//徹底將工作區、暫存區和版本庫記錄恢復到指定的版本庫

git reset --hard 版本庫id

關於檔案合併

git merge <> 《分知名》 是把別的倉庫中的內容合併到當前倉庫,如果當前倉庫中的同乙個檔案有了更改,其他分支同乙個檔案也有了更改,那麼合併就會出錯,這個時候就需要手動解決衝突。因為不知道

該以哪個更改的為主。

git ls-files 來檢視緩衝區中提交了哪些檔案

git diff --cached 用來檢視前後兩次 git add 後的變化 原來快取區中的檔案也是要git add後 用git diff --cached才會有變化的

當我新建分支時彈出如下錯誤

fatal: not a valid object name: 'master'.

想新建立乙個分支時出現這錯誤。

後來發現,要先commit一次才會真正建立master分支,此時就可以新建立分支了。。

在沒有commit之前,如果使用git checkout -b 《分支名》  來建立切換到分支,實際上這個分支是沒有被建立的 所以用git checkout是不能進行切換的

git add 命令

git add xx命令可以將xx檔案新增到暫存區,如果有很多改動可以通過 

git add -a .來一次新增所有改變的檔案。注意-a選項後面還有乙個句點。 

git add -a表示新增所有內容, 

git add .表示新增新檔案和編輯過的檔案不包括刪除的檔案; 

git add -u表示新增編輯或者刪除的檔案,不包括新新增的檔案。

該檔案用來指定哪些檔案不需要被管理,通常包裹一些快取檔案等等。我們直接在windows下新建.gitignore檔案,處於系統的自我保護會阻止這一行為。我們可以在git控制台中使用

touch .gitignore來新建。

如果我們檔案已經被管理,此時要想忽略該檔案,必須先通過git rm --cached 《檔名》先從快取區中移除該檔案。

git 使用心得

比起svn,git有許多強大之處,比如 本地可以儲存整個修改 提交的歷史記錄 這一點對於離線開發尤其有幫助 支援一次次的增量合併rebase,適合多人合作。不過,再強大的工具,也要 會家 善使,這裡基本 常用的命令就要熟練掌握並且深刻理解,對於一些場景也能夠做到運用自如。以下提供一些問題場景及其解決...

git使用心得

在 git 內都只有三種狀態 已提交 committed 已修改 modified 和已暫存 staged 已提交表示該檔案已經被安全地儲存在本地資料庫 中了 已修改表示修改了某個檔案,但還沒有提交儲存 已暫存表示把已修改的檔案放在下次提交時要儲存的清單中。常用命令 git clone 位址 git...

GIT使用心得

git和svn不同,git的 有三份,分為 本地 本地庫 reponsitory乙份。當commit時,是將本地 提交到本地庫,然後再進行push操作才是將 提交到伺服器。專案哪怕沒有衝突,也必須要先更新後才能提交 在日常開發中有衝突時在所難免的,如何使用eclipse上的git工具進行衝突解決操作...