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,遠端倉庫就更新到上一個版本了
原理就是反向提交,把上一個版本的檔案提交過去,還原為上一個版本