第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

全部開發(fā)者教程

PyCharm 編輯器教程

PyCharm 數(shù)據(jù)庫工具
PyCharm 的數(shù)據(jù)庫工具

在 PyCharm 里使用git

上一小節(jié)里介紹了 PyCharm 集成了哪些版本工具及常用的一些功能,其中一些功能介紹的比較簡單,這小節(jié)將以 Git 為例,結(jié)合實際的工作場景,詳細(xì)介紹在版本控制中常用功能。

1. 建立git 存儲庫

1.1 基于現(xiàn)有項目創(chuàng)建本地Git存儲庫

我們可以基于現(xiàn)有項目源創(chuàng)建本地 Git 存儲庫。將整個項目與單個 Git 存儲庫關(guān)聯(lián)。

主菜單 VCS -> Enable Version Control Integration 或者 快捷鍵 ?V ( Ctrl + v) 在彈出窗口中選擇 Enable Version Control Integration,選擇 Git 作為版本控制系統(tǒng),然后單擊"確定"。

圖片描述
啟用 VCS 集成后,PyCharm 將詢問您是否要通過 VCS 共享項目設(shè)置文件。您可以選擇"Always Add"以與使用 PyCharm 的其他存儲庫用戶同步項目設(shè)置。
圖片描述
除此以外, 系統(tǒng)還提示創(chuàng)建 .gitgnore 文件,先直接創(chuàng)建。這個文件將用于記錄那些排除在版本控制的文件。
圖片描述

1.2 從遠(yuǎn)程主機(jī)(克?。┖灣鲰椖?/h3>

主菜單: Preference/Settings -> Version Control -> GitHub, 輸入用戶名與密碼,配置遠(yuǎn)程GitHub 帳戶,確保登錄成功。也可以選擇其它版本工具。
圖片描述
主菜單 VCS -> Get from Version Control, 選擇選擇主機(jī)與項目,克隆項目。
圖片描述

1.3 增加文件到存儲庫

主菜單:PyCharm/File -> Preference/Settings -> Version Control -> Commit, 這樣可以保證在Commit 窗口查看本地變化。
圖片描述
可以在 View -> Tools -> Commit 工具窗口展開 Unversioned Files 節(jié)點(diǎn), 選擇要添加到 Gi的文件,然后按 ??A (Ctrl + Alt + A) 或從上下文菜單中選擇"Add to VCS"。也可以從 Project 工具選擇要添加的文件,按 ??A 或從上下文菜單中選擇"Add to VCS"。(加到存儲庫的文件顏色由紅色變?yōu)榫G色)
圖片描述

1.4 從版本控制中排除文件(ignore)

有時需要把一些文件排除在版本控制之外。這些文件可能是 VCS 管理文件、備份副本等。

Git 提供了兩種配置文件中列出忽略的文件模式:

  1. .git/info/exclude file
    此文件中列出的模式僅適用于存儲庫的本地副本。當(dāng)初始化或簽出 Git 存儲庫時,將自動創(chuàng)建此文件。

  2. VCS 根目錄 .gitignore 文件。
    這些文件被簽入存儲庫,整個團(tuán)隊都可用其中忽略模式。因此,它是存儲忽略的文件模式的最常見位置。上面在創(chuàng)建 Git 存儲庫時,就會提示創(chuàng)建這個文件,然后默認(rèn)會創(chuàng)建在根目錄。也可手動在Project 窗口中的任意位置右鍵單擊, 選擇 New -> File 和在 New File 對話框中鍵入.gitignore。

在 Local Changes 窗口 or Project 工具窗口,選擇文件右擊 Git -> Add to .gitignore or Git -> Add to .git/info/exclude。選擇的文件將被填加對應(yīng)配置文件當(dāng)中。
圖片描述

1.5 增加遠(yuǎn)程存儲庫

為了能夠協(xié)作處理 Git 項目,您需要配置從中獲取數(shù)據(jù)的遠(yuǎn)程存儲庫,并在需要共享工作時推送到這些存儲庫。我們在本地源創(chuàng)建了 Git 存儲庫,則需要為其他參與者添加一個遠(yuǎn)程存儲庫,以便能夠?qū)⑵涓耐扑偷皆摯鎯?,并且能夠共享工作的結(jié)果。

比如添加遠(yuǎn)程 GitHub 存儲庫,打開要共享的項目,VCS -> Import into Version Control -> Share Project on GitHub。前面的步驟我們已經(jīng)了在 PyCharm 中注冊了 Github 帳戶,系統(tǒng)會自動 建立與 GitHub 的連接后,需要指定遠(yuǎn)程存儲庫名稱、遠(yuǎn)程 的名稱,并輸入項目的說明。如果您不想允許其他 GitHub 用戶公開訪問存儲庫,可以選擇"Private "選項。點(diǎn)擊共享后,選擇初次需要提交的文件就可以了。
圖片描述
查看Github 網(wǎng)站,新的存儲庫被創(chuàng)建,我們選擇的三個文件也被上傳成功了。
圖片描述
在某些情況下,您還需要添加第二個遠(yuǎn)程存儲庫。例如,如果克隆了一個沒有寫入訪問權(quán)限的存儲庫,并且要將更改推送到自己的原始項目的分叉,這可能很有用。

主菜單 VCS -> Git -> Remotes, Git Remotes 對話框?qū)⒈淮蜷_,此時可以增加新的遠(yuǎn)程連接。
圖片描述

2. Pull 、Fetch 與 Update 項目

三者都用于更新代碼,在前一小節(jié)已經(jīng)講解了三者的不同,在這不再詳述。 這里分別演示一下三種方式更新代碼的效果。

2.1 Pull Changes

在GitHub 編輯 rectangle.py 文件 (實際工作中,通常是團(tuán)隊成員更新了文件,然后 Push 到GitHub, 基本不會直接在GitHub 上更新)
圖片描述
右鍵上下文菜單選擇 Git -> Repository -> Pull , 本地文件會被直接更新。
圖片描述

2.2 Fetch Change

在GitHub 編輯 rectangle.py 文件
圖片描述
右鍵上下文菜單選擇 Git -> Repository -> Fetch , 本地文件沒有被直接更新。改變是被作為遠(yuǎn)程分支存儲的,本地文件與遠(yuǎn)程分支比較 VCS -> Git -> Branches... 選擇origin/master -> Compare with Current,在 版本控制工具 Git 查看異同,如果接受改變,然后VCS -> Git -> Branches... 選擇origin/master -> Merge with Current。
圖片描述

2.3 Update Change

如果整個項目有兩個分支,master 與 xuxh, 在Github 分別在 兩個分支上更新代碼。
圖片描述
切換到 xuxh 分支,修改代碼。
圖片描述
主菜單選擇 VCS -> Update Project 或者 點(diǎn)擊工具欄上的 Update Project 按鈕, Event log 工具窗回會顯示更新狀態(tài),本地master 作為當(dāng)前分支,文件直接被更新。
圖片描述
切換到xuxh 分支 VCS -> Git -> Branches... 選擇 xuxh -> Check out,查看文件并沒有被更新,相當(dāng)執(zhí)行了Fetch 操作。在合并之前先查看不同,然后再merge。圖片描述

3. 本地更改的提交與推送(Commit and Push)

Git 需要用戶名才能將提交與標(biāo)識關(guān)聯(lián)。如果尚未設(shè)置用戶名,PyCharm 將在首次嘗試提交更改時提示您指定它。

若要為計算機(jī)上的每個 Git 存儲庫設(shè)置名稱

git config --global user.name "xuxh"

若要為單個存儲庫設(shè)置名稱

git config user.name "xuxh"

3.1 提交本地更改

主菜單 VCS -> View -> Tool Windows -> Commit,選擇要提交的文件或者changelist, 填寫提交信息,選擇 commit 或者 Amend Commit

圖片描述
通過工具欄上按鈕,可以Rollback 代碼,可以比較文件,也可以設(shè)置提交前與提交后的操作。
圖片描述
有時候我們可能只想提交部分文件更改,比如在 test_rectangle.py, 增加了兩個方法 test_width 與 test_height, 然后只提交 test_width。未選擇的改變?nèi)匀辉诋?dāng)前的Changelist 里。
圖片描述
除此以外,也可以將一個文件更改放入不同的更改列表,以實現(xiàn)文件的部分提交。
圖片描述

3.2 將更改推送到遠(yuǎn)程存儲庫

在推送更改之前,請與遠(yuǎn)程同步,并確保存儲庫的本地副本是最新的,以避免沖突。PyCharm 允許將更改從任何分支上載到其跟蹤的分支或任何其他遠(yuǎn)程分支。

要推送當(dāng)前分支的更改, 主菜單 VCS -> Git -> Push, Push Commits 對話框?qū)@示。
圖片描述
關(guān)于Force Push 的應(yīng)用場景,當(dāng)你運(yùn)行 push 時,如果遠(yuǎn)程存儲庫在你上次拉取最新代碼后又有 更新,則 Git 將拒絕完成 Push 操作。此時選擇Force Push 會用本地復(fù)本覆蓋遠(yuǎn)程存儲庫。通常我們是不建議這樣用Force Push 的,而應(yīng)執(zhí)行拉取與遠(yuǎn)程同步,然后才能使用更改進(jìn)行更新。

4. 查看 Git 存儲庫中的更改

  1. 查看項目歷史記錄
    View -> Tool Windows -> Git 工具窗口的日志選項卡。它顯示提交到所有分支和遠(yuǎn)程存儲庫的所有更改。
    圖片描述
  2. 查看兩個提交之間的差異
    在 Git 工具窗口的"日志"選項卡中選擇兩個提交,然后從上下文菜單中選擇 Compare Version,
    打開在所選提交之間修改的文件列表, 單獨(dú)選擇文件查看差異。
    圖片描述
  3. 查看單個文件、目錄修改歷史

有多個入口可以查修改歷史, 從 Project 工具欄 或者編輯器的上下文菜單選擇 Show History,也可以從主菜單 VCS -> Git -> Show History
圖片描述

5. 分支管理

在 Git 中,分支是一種強(qiáng)大的機(jī)制,我們可以創(chuàng)建不同工作分支應(yīng)對不同的人與工作用途。通常,除了主分支 master 外,至少還會建立 develop, test 以及程序員自己的個人分支。

可以在 Git 工具窗口的 Branch 窗格中管理分支
圖片描述

5.1 創(chuàng)建分支

Branches 彈出窗口或 Git 工具窗口的 Branches 窗格選擇某一分支,然后選擇 New Branch, 也可以從某一次 Commit 創(chuàng)建分支。

圖片描述

5.2 在分支間切換

Branches 彈出窗口或 Git 工具窗口的 Branches 窗格中,選擇要在本地分支下切換到的分支,然后從可用操作列表中選擇 Checkout。
圖片描述

5.3 比較分支

  1. 將分支與當(dāng)前分支進(jìn)行比較

Branches 彈出窗口或 Git 工具窗口的 Branches 窗格中,選擇要與當(dāng)前分支進(jìn)行比較的分支,右鍵上下文菜單選擇Compare With Current 。新的選項卡將添加到 Git 工具窗口,列出所選分支中存在且當(dāng)前分支中不存在的所有提交。若要查看兩個分支中不同的所有文件的列表,請單擊 ?A Ctrl + A, 更改的文件窗格將列出包含差異的所有文件。

圖片描述
Tips: 可以單擊 Swap branches 鏈接來更改哪個分支被視為比較其他分支的基礎(chǔ)。

  1. 將分支與Working Tree 進(jìn)行比較
    Working Tree 可以理解為當(dāng)前分支的本地狀態(tài)。如果您有本地未提交的更改,這非常有用。

Branches 彈出窗口或 Git 工具窗口的 Branches 窗格中,選擇要與本地工作樹進(jìn)行比較的分支,然后選擇 Show Diff with Working Tree。所選分支和當(dāng)前分支的本地狀態(tài)中不同的所有文件的列表將顯示在單獨(dú)的窗口中。
圖片描述

5.4 刪除分支

Branches 彈出窗口或 Git 工具窗口的 Branches 窗格中, 選擇要刪除的分支,然后選擇 Delete 。
圖片描述

6. 將更改從一個 Git 分支應(yīng)用于另一個分支

6.1 Merge Branch

Branches 彈出窗口或 Git 工具窗口的 Branches 窗格中,選擇目標(biāo)分支,然后從可用操作列表中選擇 Checkout。

如果不需要為合并指定選項,請選擇要合并到當(dāng)前分支的分支,然后從子菜單選擇 Merge into Current。如果工作樹是干凈的(沒有未提交的更改),并且功能分支和目標(biāo)分支之間沒有沖突,Git 將合并兩個分支,合并提交將顯示在 Git 工具窗口中。
圖片描述
如果需要為合并指定選項, 主菜單 VCS -> Git -> Merge Changes 去打開 Merge 對話框。
圖片描述

6.2 Rebase 分支

正如他的名字所隱含的意思:rebase存在的價值是:對一個分支做“變基”操作,這意味著改變這個branch的初始commi。它會在新的base上一個一個地運(yùn)行這個分支上的所有commits。這個概念理解起來可能稍微有點(diǎn)困難,請參考官網(wǎng) git-rebase, 里面有更詳盡的介紹。

比如當(dāng)我試圖將本地 xuxh 分支的改變 commit and push到remote對應(yīng)分支時,被拒絕了,原因是自從上次和origin同步(通過git pull)后, remote xuxh分支又有了新的改變。這種情況下,如果我們強(qiáng)行將我們的代碼push過去將會覆蓋remote 分支上代碼,而這往往是不允許的,所以push總會給出下面的提示

圖片描述
點(diǎn)擊Rebase, 彈出下面的 Conflicts 窗口, 通常都會選擇 Merge… 。如果選擇 Accept Yours, 相當(dāng)于把本地代碼強(qiáng)行推到遠(yuǎn)程分支,會覆蓋遠(yuǎn)程分支上一些改變,選擇 Accept Theirs, 相當(dāng)于放棄本地的改變。

圖片描述
選擇Merge… , 下面的窗口會列出分支的不同
圖片描述
根據(jù)代碼的情況,進(jìn)行合并,然后點(diǎn)擊Apply, 查看本地代碼,遠(yuǎn)程改變已經(jīng)合并到本地。
圖片描述
在event log 工具欄會看類似的信息:

**11:52 AM	Push rejected
				Push has been cancelled, because there were conflicts during update.
				Check that conflicts were resolved correctly, and invoke push again.
				View received commits**

第一次的Push 操作已經(jīng)取消了, 上面的操作已經(jīng)與遠(yuǎn)程分支同步了,此時再次 Push 代碼就能正常了。

【注意】通常我們只建議在自己的私有分支上做rebase, 永遠(yuǎn)不要rebase一個已經(jīng)分享的分支,比如rebase到master,develop,release分支上,如果幾個人對同一個分支做了rebase 以后,會造成后來的push 與同步困難,還有許多相同的changeset。

前面講了同一分支上的 rebase,我們也可以基于另一分支上作同樣的“變基”操作,xuxh 個人分支是從master 創(chuàng)建的, 當(dāng)我們在個人分支上開發(fā)的時候,master 分支可能一直在變化,此時可以通過rebase 把 master 最新代碼 merge 到個人分支上。主菜單: VCS -> Git -> Rebase。

圖片描述
后面的操作與前面介紹的一致,會有 conflics 窗口彈出,然后 merge 代碼,然后點(diǎn)擊rebase。
rebase 成功后會在 Event log 顯示類似的信息。

12:22 PM	Rebase Successful: Rebased xuxh on refs/heads/master

6.3 應(yīng)用單獨(dú)的更改

假設(shè)你對一個文件做了更改,現(xiàn)在想把這個更改應(yīng)用到其它分支當(dāng)中去。比如下面在xuxh分支的test_rectangle.py 增加一個新方法 test_resize_positive, 現(xiàn)在想應(yīng)用到 master 分支
圖片描述

  1. Branches 彈出窗口或 Git 工具窗口的 Branches 窗格中,選擇目標(biāo)分支master,然后從可用操作列表中選擇 Checkout。
  2. 然后選擇xuxh 分支, 找到包含要應(yīng)用的更改的提交。
  3. 在 Commit Details 面板右側(cè), 選擇包含要應(yīng)用于目標(biāo)分支的更改的文件,然后在上下文菜單里選擇 Apply Selected Changes
  4. 在彈出對話框中輸入 changelist 名字。
  5. Commit and push 到目標(biāo)分支。

圖片描述

7. 小結(jié)

本小節(jié)應(yīng)該是本課程內(nèi)容最多的一節(jié),詳細(xì)講述了在PyCharm里,如何使用Git進(jìn)行版本管理,包括更新、提交代碼,查看歷史,如何進(jìn)行分支合并等等。對于程序員來說,這幾乎是每天都要做的事情,對于沒用過任何版本控制工具同學(xué)來說,需要不斷實踐,在解決各種各樣的情況過程中才能真正掌握,所以這可能需要一點(diǎn)時間。
圖片描述