pycharm整合的 git 切換分支注意事項

2021-09-26 14:17:24 字數 1517 閱讀 8910

最近在工作中遇到的問題計解決總結,如下:

原專案在 master 分支

git branch testing

git checkout testing

touch aa.txt

經過上面的步驟,我在testing分支下新建了乙個aa.txt檔案 

git checkout master

經檢視發現master分支下也有乙個aa.txt檔案

說好的分支之間不互相印象,為什麼我在testing分支下的修改也會被同步到master分支呢?

git 的分支,其實本質上僅僅是指向提交物件的可變指標。 git 的預設分支名字是 master。 在多次提交操作之後,你其實已經有乙個指向最後那個提交物件的 master 分支。 它會在每次的提交操作中自動向前移動。

對於新建立的testing分支這個指標,head指標還是指向之前建立testing分支的master分支。

在testing 分支建立aa.txt檔案後沒有add 、commit後再切換回master,head指標還是指向之前建立testing分支的master分支。

假設我們在testing分支上建立,並提交乙個檔案

$ vim test.rb

$ git commit -a -m 'made a change'

可以看到對比上乙個版本,增加了乙個87ab2這個版本

idea 幫助文件提供了切換分支時的選項說明;

此時testing 分支向前移動了,但是 master 分支卻沒有,它仍然指向執行 git checkout 時所指的物件。 這就有意思了,現在我們切換回 master 分支看看:

1. 本地分支切換的時候(例如a切到b),會彈出來restore workspace on branch switching 對話方塊,如果選擇是的話,在切換分支的時候,你在當前分支(a)所做的一些還未add或commit/push的檔案改動(包括斷點等的設定)會帶到切換後的分支(b)上;

2. 如果本地工作空間沒有uncommitted changes, 分支會順利切換

3. 如果本地工作空間(分支a)有些檔案會被分支b改動,idea會彈出對話方塊,讓你選擇force checkout 或 smart checkout;

如果選擇force checkout, 本地工作空間(分支a)的一些未提交的修改會被覆蓋(被分支b覆蓋),會有很大可能丟**!!!

如果選擇smart checkout,idea會先執行stash命令,貯存這些未提交的修改,然後checkout 到分支b,在切換到分支b後,unstash 這些修改,所以a分支本地的這些修改會帶到b分支上。

pycharm的git密碼錯誤

pycharm使用gitlab輸錯密碼解決辦法 這個問題困擾我兩周了,今天抱著試一試的想法,隨手搜了一下,出現了新的結果,就看了一下,就解決了。好使,感謝鐵子。在pycharm中使用http方式連線gitlab,在測試連線的時候提示輸入使用者名稱,密碼。密碼輸錯後,以後的每次test都是使用錯誤的密...

pycharm 中切換虛擬環境

cmd 命令進入虛擬環境所在的資料夾 pycharm在每建立乙個新專案時就會建立乙個虛擬環境資料夾 命令列執行 activate 第一步的資料夾是虛擬環境所在的資料夾,scripts是虛擬環境資料夾下的,activate是啟用元件 之後即進入虛擬環境 退出該環境變數 命令列執行 deactivate...

整合開發環境pycharm開發opencv專案

習慣了整合開發環境,而且python也有乙個好用的整合開發環境名為pycharm,記錄一下 pycharm官網 安裝完這個之後,接著安裝anaconda2,這算是乙個python的發行版吧,將常用的python 包都整合在了一起,更新非常方便,圖示如下 看圖示 將pycharm中的python直譯器...