原生git命令真的沒有IDE香!!! 信我
一、pycharm使用git
項目前提:遠程github倉庫克隆來的項目只有master分支,創建自己的dev分支開發后,提交到遠程倉庫,遠程倉庫發起pr流程,管理者審批后merge內容到master分支
- 前提是你已經安裝了git,可能pycharm自帶的也有吧,不清楚
- 在遠程倉庫或者是fork或者是git clone過來項目,用pycharm打開
1.整體了解
- git入口

- 文件顏色代表被git管理的狀態不同
我們文件中有很多文件是不需要提交到版本庫的,比如本地數據庫文件、log文件、pycharm生成的文件、test.py本地測試腳本等,就需要編寫這個.gitignore文件,編寫方法百度就好了

2.提交本地版本庫
修改文件后,我們點擊頂部綠色對號就可以提交,他執行的是git add操作+git commit

使用IDE的好處就是這么明顯,我們可以隨便提交任何一個文件,你想提交誰就提交誰,還可以看到任何一個文件的改動是什么,選擇提交任何一處具體改動
- 選擇要提交的文件打對勾,逐個查看各個文件
-選擇文件中要提交的內容
-填寫注釋信息
-commit版本庫,或者commit並push到遠程倉庫

3.分支操作
比如現在在dev分支下,你點擊master分支的小箭頭:
-然后點擊checkout就會切換到master
-點擊merge就會將master合並到dev
-點擊push就會將masterpush到遠程

4.沖突解決
情況一:當你merge其他分支到當前分支
情況二:你點擊頂部的pull箭頭拉取遠程的分支來更新本地分支(git pull origin master //相當於git fetch 加 git merge)
我們提交遠程倉庫前必須先pull再push:
-假如開發人員共用一個dev分支開發,就直接pull,拉取的就是遠程dev,保證遠程dev和本地dev不沖突
-比如我的自己獨用一個dev,最后要領導審批后合並到master,我就不需要pull遠程dev,根本不會沖突,我需要做的是切換到master然后pull遠程master,然后再切換回dev,merge本地的master到dev,保證本地dev和遠程master不沖突(有時候開發中擔心把大家給公用的開發分支搞亂了就可以建立自己的my_dev分支,最后合並到dev上就好了)

看下圖解決沖突就好了:

5.版本操作
-比較兩個版本的不同

-回滾版本
可以用^來回滾,一個表示往前回滾一次,也可以指定版本號回滾


6.
應用場景:
情景1: 當正在dev分支上開發某個項目,這時項目中出現一個bug,需要緊急修復,但是正在開發的內容只是完成一半,還不想提交,這時是不能直接切換分支的,可以用git stash命令將修改的內容保存至堆棧區,然后順利切換到hotfix分支進行bug修復,修復完成后,再次切回到dev分支,從堆棧中恢復剛剛保存的內容
git stash作用的范圍包括工作區和暫存區中的內容,也就是說沒有提交的內容都會保存至堆棧中
新增加的文件,比如test.txt,還沒有執行add操作,他是不受git管理的自然也不受git stash影響,你切換到哪個分支他都會跟着過去,你在哪個分支add他就屬於誰
git stash # 將所有未提交的修改(工作區和暫存區)保存至堆棧中,用於后續恢復當前工作目錄 git stash save '提示信息' #作用等同於git stash,區別是可以加一些注釋,如: git stash save '測試一下' git stash list #查看當前stash中的內容 git stash pop #將當前stash中的內容彈出,並應用到當前分支對應的工作目錄上。 注:該命令將堆棧中最近保存的內容刪除(棧是先進后出) git stash apply #將堆棧中的內容應用到當前目錄,不同於git stash pop,該命令不會將內容從堆棧中刪除,也就說該命令能夠將堆棧的內容多次應用到工作目錄中,適應於多個分支的情況 git stash drop + 名稱 #從堆棧中移除某個指定的stash git stash clear #清除堆棧中的所有 內容 git stash show #查看堆棧中最新保存的stash和當前目錄的差異。 git stash show stash@{1} #查看指定的stash和當前目錄差異 git stash show -p #查看詳細的不同 git stash show stash@{1} -p #查看指定的stash的差異內容
pycharm中切換分支時自帶stash,如果你不commit本地倉庫,你切換分支時會提示smart checkout,其實就是在當前分支執行了git stash,在目標分支執行了git stash apply,就會將你做的更改帶到目標分支,當然也可能會沖突,需要手動解決

當我們當前dev分支開發到一半,接到任務需要開發master分支時,我們還不想提交本地庫也不想帶到master分支,可以git stash,然后就可以切換到master開發,完成任務后再次切換到dev,執行git stash apply就可以恢復我們之前的代碼了:




二、github的pull request流程
pr流程就是你要合並代碼到某個分支如master,你先將自己的代碼push到遠程dev分支,然后在github中切換到dev分支,然后提交pr流程,管理者就可以收到,然后可以批改審閱你的代碼,並且可以評論給出指導修改意見,然后你去修改代碼重新push到遠程,多次修改多次push,每一次都會有記錄,最后領導滿意了,就可以merge你的dev分支到master,你的代碼就算是正式代碼了
1.代碼提交流程
以下詳細流程只是為了便於理解,可別自己敲命令了,直接在pycharm中進行相應操作就好了,人家造好的車它不香么?
$ git clone https://github.com/xxoo.git //克隆項目
$ git checkout -b dev //創建並切換分支
$ git add . //提交暫存區
$ git commit -m "我到倉庫了" //提交本地倉庫
$ git pull origin master // 拉取遠端分支以獲取最新內容,如果有沖突就解決沖突
$ git checkout test-pr // 切換到自己的分支
$ git merge master //合並master到dev,如果有沖突就解決沖突
2.發起pull request流程
第一步:進入github界面,切換到dev分支,在右上角就會出現綠色的pull request按鈕,點擊

第二步:選擇提交到哪個分支,添加注釋信息,創建

第三步:領導審批提出意見,然后你反復修改再提交,最終合並

參考:https://www.jianshu.com/p/704c0561d3ff
