1. 程式人生 > 其它 >idea or pycharm中使用git

idea or pycharm中使用git

準備工作

建好遠端倉庫,拉取到本地

執行以下命令,這樣我們得到了一個空的專案

git clone https://github.com/emmith/gittest.git
cd gittest
git init

然後用pycharm開啟專案

一次簡單的提交

總體步驟是 create file -> add file -> commit -> push

首先新建一個檔案

新建一個檔案後,會提示你是否add

如果上面沒有點選add,可以右鍵專案->git->add

add完成以後,檔名稱會變成綠色

commit

點選右上角的勾,勾選本次提交所更新的檔案,輸入提交相關資訊,點選commit提交

commit完成以後檔名稱變成白色

push到遠端倉庫

點選右下角的master(分支名稱),出現以下介面

點選local branches下的分支名稱,再點選push,確認push即可更新到遠端倉庫,一般我們不會直接提交到master,我們先新建一個dev分支
點選上圖中的new branch

然後點選右下角分支名稱,點選local branes下的分支名稱,點選push,出現以下介面

點選push,檢視遠端倉庫如下所示

點選右下角的分支名稱後可以看到,多了一項Remote branches

先同步遠端倉庫再push

在實際使用中,我們一般是多人協作,可能提交之前,遠端倉庫已經更新了,為了避免不必要的麻煩,我們要先同步再push

在github頁面上,線上編輯readme檔案,並新增一個test檔案,模擬其他人的提交

在本地修改readme檔案,並新建一個提交
點選左下角的git,點選loca下的dev分支,可以看到本地的提交記錄

雙擊右邊的你已經修改過的檔名稱,可以看到檔案相對上一次提交的對比,這裡我增加了一行local update

點選remote的dev分支,因為沒有同步,所以顯示依然只有一條

點選右上角的藍色箭頭,出現下圖

選擇第一個點選ok,然後出現以下介面

因為我們在本地修改了readme檔案,並commit到了本地分支,而遠端倉庫的readme檔案也進行了修改,這個時候就有了衝突,右邊有三個選項,選擇accept yours則儲存本地修改,檔案不變,accept theirs則儲存為遠端倉庫的修改,本地的修改被覆蓋,這裡我們選擇merge,出現下圖

可以直觀的看到對比,accept left為儲存本地的修改,accept right為儲存遠端的修改,中間的為你手動merge後的結果,這裡我儲存為如下

檢視本地分支,發現已經把遠端分支的記錄同步到了本地

檢視遠端分支,對比本地分支發現少了一條記錄,因為我們還沒有push

push完成以後,再次檢視遠端分支,發現和本地分支同步了

merge remote tracking...因為我們將readme檔案中遠端的修改和本地修改進行了merge,我們可以點進去檢視

取消commit

取消沒有push的commit

右鍵local 下對應分支的提交,點選undo commit即可,如果要取消多個,從上到下取消,不要從中間取消

取消已經push的commit

右鍵remote下的對應分支的提交,點選revert commit,然後commit,會自動給你加上revert ...的提交資訊,再push,遠端倉庫就更新到上一個版本了

原理就是反向提交,把上一個版本的檔案提交過去,還原為上一個版本