1. 程式人生 > 實用技巧 >第一週問題總結

第一週問題總結

第一週解決的問題和總結問題

1.pull request

我嘗試用類比的方法來解釋一下 pull reqeust。想想我們中學考試,老師改卷的場景吧。你做的試卷就像倉庫,你的試卷肯定會有很多錯誤,就相當於程式裡的 bug。老師把你的試卷拿過來,相當於先 fork。在你的卷子上做一些修改批註,相當於 git commit。最後把改好的試卷給你,相當於發 pull request,你拿到試卷重新改正錯誤,相當於 merge。

當你想更正別人倉庫裡的錯誤時,要走一個流程:

  1. 先 fork 別人的倉庫,相當於拷貝一份,相信我,不會有人直接讓你改修原倉庫的
  2. clone 到本地分支,做一些 bug fix
  3. 發起 pull request 給原倉庫,讓他看到你修改的 bug
  4. 原倉庫 review 這個 bug,如果是正確的話,就會 merge 到他自己的專案中

至此,整個 pull request 的過程就結束了。

理解了 pull request 的含義和流程,具體操作也就簡單了。以 Github 排名最高的 https://github.com/twbs/bootstrap 為例說明。

  1. 先點選 fork 倉庫,專案現在就在你的賬號下了

  1. 在你自己的機器上 git clone 這個倉庫,切換分支(也可以在 master 下),做一些修改。
~  git clone https://github.com/beepony/bootstrap.git
~  cd bootstrap
~  git checkout -b test-pr
~  git add . && git commit -m "test-pr"
~  git push origin test-pr
  1. 完成修改之後,回到 test-pr 分支,點選旁邊綠色的 Compare & pull request 按鈕

  1. 新增一些註釋資訊,確認提交

  1. 倉庫作者看到,你提的確實是對的,就會 merge,合併到他的專案中

以上就是 pull reqesut 的整個流程.

Git 的 pull request是什麼意思:https://www.zhihu.com/question/21682976 這篇文章講的比較詳細

官方文件:https://docs.github.com/cn/free-pro-team@latest/github/collaborating-with-issues-and-pull-requests/about-pull-requests

官方文件解釋

2.cherry pick

各位碼農朋友們一定有碰到過這樣的情況:在develop分支上辛辛苦苦擼了一通程式碼後開發出功能模組A,B,C,這時老闆過來說,年青人,我們現在先上線功能模組A,B。你一定心裡一萬隻草泥馬奔騰而過,但為了混口飯吃必須得按老闆的意思辦事啊。

怎麼辦?一個辦法就是,重新建一個分支,然後再把功能模組C回退,留下功能模組A,B。這種做法不是不行,但是有更好的辦法,那就是git所提供的cherry-pick功能。

cherry-pick類似於一個定製化的merge,它可以把其它分支上的commit一個個摘下來,合併到當前分支。

廢話不多說,直接上例項。

比如我現在有個檔案a.c,我在develop分支完成了三個功能模組:feature A,feature B,feature C。如下圖:

現在,坑爹的老闆只要feature A,feature B,我們現在用cherry-pick命令直接把feature A,feature B的提交合併到master分支裡,如下操作:

可以看到,功能模組feature A,feature B已經被合併到master分支裡。請注意,合併到master分支裡的提交雜湊值發生了改變,與原來的不同。

可以看出,cherry-pick命令使用方法很簡單,即:

git cherry-pick commitID

剛剛是一個個提交cherry-pick到master分支,但如果有100個commit要合併到master分支呢?總不能這樣一個個操作吧?git一樣幫你想到了,它提供了一個區間操作方法。具體來講是這樣的:

git cherry-pick commit1..commit100

但是要注意,這是一個左開右閉的操作,也就是說,commit1不會被合併到master分支,而commit100則會。這樣的話上面的需求可以如下操作來實現:

注意:上面講到cherry-pick命令每揀選一個commit就會提交一次生成一個新的commit id。 如果我們想讓每個commit 揀選後暫緩提交,等到所有commit都揀選完成後,自己手動commit,應該怎麼辦呢?答案是用-n 選項:

文章原地址:https://zhuanlan.zhihu.com/p/58962086

3.orcle客戶端安裝配置和PL sql的安裝後的錯誤

我的是別人直接傳給我資料夾,不是官方簡化版的是,是完整版的。

  1. 配置環境變數

在系統變數新建幾個環境變數,變數名和變數值參考如圖:

最後在path中新增:

配置好後直接在dos中輸入命令sqlplus,配置成功會出現oracle版本資訊;

  1. 安裝PL sql,並填寫註冊碼啟用
  2. 啟動PL sql,輸入使用者名稱,密碼,資料庫登入。
  3. 如果PL sql 出現初始化 錯誤 定位oci.dll檔案失敗,先取消登入 ,進去選擇tools->propetiespei配置oracle主目錄和oci.dll庫檔案,然後儲存,退出,再登入
  4. 如果出現 初始化 錯誤 你確定安裝了64位(32位)的oracle client嗎?,這多半是安裝的oracle 版本位數和PL sql版本不一致,這時需要安裝與oracle 版本位數一致的PL sql 就可以了

4.idea中的Git操作

Git詳解及版本控制規範:https://blog.csdn.net/su1573/article/details/91988523 圖文都有,針對於關聯需求、獨立需求以及生產bug的詳細解釋及步驟,讓自己理解生產中在git上的合作操作流程。

idea+git合併分支解決衝突及詳細步驟:https://blog.csdn.net/su1573/article/details/91990437 針對於git上分支的管理,如:分支切換、分支建立、分支合併等。

因為自己主要是學習整理為主,文章中有很多轉載他人的內容,方在此註明並表達感謝對自己學習工作的幫助,以後自己每週也會對自己的疑惑和收穫進行總結