github覆蓋本地專題及常見問題 - CSDN

2020-12-25 CSDN技術社區

前言

在此記錄Github中git的基礎指令,如:怎麼將fork項目和源倉庫同步;怎麼刪除分支;拋棄本地修改;上傳本地修改;克隆github項目分支 等。

最近一直在用github,提交文件之類的操作常常需要用到git。所以在此記錄。

1 從github上克隆項目

這個最簡單:
git clone <github-project-url>

<github-project-url>就是項目所在的github網址,如下圖,則克隆命令為:git clone https://github.com/SpoonLabs/nopol.git

2 從github上fork項目

fork項目的話,我沒用git指令,而是直接在github中你想要fork到自己倉庫的項目主頁,點擊fork按鈕即可,如下:

3 從github上克隆項目分支

克隆分支使用命令:
git clone -b <branch-name> <github-project-url>

如:git clone -b march2017 https://github.com/SpoonLabs/nopol.git

4 將自己fork的項目與Github原項目同步(更新)

這個比較難。

先描述一下場景 :github上有一個項目Nopol ( https://github.com/SpoonLabs/nopol.git ),我將Nopol這個項目fork到了我的倉庫中( https://github.com/DehengYang/nopol ),然後使用git clone https://github.com/DehengYang/nopol.git下載到了本地,原本Nopol總共有4個分支,現在Nopol作者給Nopol添加了一個march2017分支,我想把這個march2017分支添加到我fork過來的Nopol中,這時候需要怎麼操作呢?

在本地中打開終端(命令行):

git branch -a # 查看我本地的fork項目Nopol的分支;發現沒有march2017git remote -v # 查看這個項目的遠程目錄;發現只有我的github fork項目地址,即 https://github.com/DehengYang/nopol.git ,但是沒有原項目的地址(https://github.com/SpoonLabs/nopol.git)git remote add upstream https://github.com/SpoonLabs/nopol.git # 添加github原項目的地址git remote -v # 再次查看本項目的遠程目錄,發現已經包含原項目地址git branch -a # 這時候再次查看項目分支,發現有remote:march2017 這個分支存在,但是不在本地git fetch upstream march2017 # 從upstream,即Nopol原倉庫地址中拉取march2017分支git checkout march2017 #切換到march2017分支git branch -a #確認是否切換到這個分支

後面幾步我記得不是很清楚了,大概應該就是這樣的(有待實踐中進一步確認)。

參考 [1],[2]。

5 在本地刪除分支

場景:在本地不小心使用 git branch -b march2017 誤創建了一個新的march2017分支。現在需要刪除分支,應該如何呢?

如下:

git branch -d march2017

參考 [5] 。

6 將本地修改上傳到github

git status #查看哪些文件被修改了git add <file-name> # 把對應的文件添加到緩存區。注意:git add * 表示緩存所有有變化的文件git commit -m "Write your desciption here" # 添加commit描述git push origin master # 如果要上傳分支代碼的話,那麼先要git checkout <branch-name>,然後git push origin <branch-name>

參考 [6] 。

7 將本地做的修改拋棄

場景:我在本地項目中修改了幾個文件,但是我現在不想要了,想刪除修改,並在本地和github倉庫中的代碼同步。

在終端輸入:

git status # 查看自己修改了什麼文件git checkout . # 如果自己的修改還沒有用git add 緩存,則使用這個來放棄這些尚未緩存的修改git pull origin master # 我沒記錯的話應該是這個指令,就是把github倉庫的項目同步到本地,如果本地沒有修改,會顯示already-up-to-date這類信息

參考 [3] 和 [4]。

參考文獻

[1] Github進行fork後如何與原倉庫同步 https://blog.csdn.net/matrix_google/article/details/80676034
[2] git分支查看及切換 https://blog.csdn.net/qq_26710805/article/details/80674006
[3] git 放棄本地修改 https://www.cnblogs.com/qufanblog/p/7606105.html
[4] git 拉取遠程分支到本地 https://blog.csdn.net/carfge/article/details/79691360
[5] git刪除本地分支 https://blog.csdn.net/github_27263697/article/details/79373997
[6] git上傳本地分支到github項目分支 https://blog.csdn.net/qq_27437967/article/details/71189571

此外,還有如下網址也給了一些指導,故在此記錄:
git常用命令以及如何與fork別人的倉庫保持同步 https://www.cnblogs.com/-walker/p/7278951.html
git fetch 更新遠程代碼到本地倉庫 https://www.cnblogs.com/chenlogin/p/6592228.html


更新

創建時間:2019年02月16日 21:48:12 筆記:Github中git的基礎指令
修改時間:2019年3月21日16:04:55 [github] 克隆、刪除分支,覆蓋本地倉庫等操作

8 將遠程倉庫代碼強行覆蓋本地倉庫

場景: 我去年上傳了一個github項目,但是當時還是小白,直接從本地各個地方拖拽文件夾上傳,,,所以本地的文件不完整。
這次想用git clone命令下載遠程倉庫代碼,發現太大了。
但是呢,我本地的又不完整,所以我先參考的 [7],執行的是:git fetch origin master,有一點用:

$ git fetch origin master
remote: Enumerating objects: 64, done.
remote: Counting objects: 100% (64/64), done.
remote: Total 2508 (delta 64), reused 64 (delta 64), pack-reused 2444
Receiving objects: 100% (2508/2508), 139.08 MiB | 162.00 KiB/s, done.
Resolving deltas: 100% (614/614), completed with 11 local objects.
From https://github.com/DehengYang/sfa-rfa
* branch master -> FETCH_HEAD
37a4543…4542980 master -> origin/master

可以看到reuse 64,我感覺是本地已有的文件沒有重複下載。

但是呢,有一個不完整的文件夾沒有覆蓋掉,我現在得強行覆蓋。

方案:
1)輸入:git fetch --all && git reset --hard origin/master && git pull (也可以分開輸入,這樣心裡有底。) [8]

2)理論上這樣就可以了,可以用git status看一下當前的狀況,如果還不行就輸入:git pull origin master,感覺這個命令非常過硬,強制執行。

$ git pull origin master
From https://github.com/DehengYang/sfa-rfa
* branch master -> FETCH_HEAD
Already up-to-date.


此外,在這樣的場景下,我一開始輸入git status的時候顯示很多 untracked files,參考[9],主要是兩個命令:git add <these-untracked-files> 可以添加這些沒有被追蹤的文件,使用git rm <-r> --cached <file-or-dir> 就可以移除。

正如上文所說,Git在未進行commit操作之前,存在三種狀態:Untracked files,Changes not staged for commit及Changes to be committed,每種狀態之間可以隨意進行互相轉換。了解這三種狀態各自所對應的不同情況,能夠幫助你方便有效的使用Git來管理項目。

9 github的readme文件如果想要引用有空格的url怎麼辦

場景: 我的一個圖片名字叫A and B.png

我想在readme裡面展示這張圖,我寫的是:
[A and B](A and B.png) (大概這樣吧,好像也要加上圖片對應的網頁地址)

但是顯示不出這張圖片。

解決:
參考[10],改成:
[A and B](A%20and%20B.png)
即可。

10 在push到遠程倉庫之後修改某一個文件的commit message

這個問題我還沒研究透,不想多寫了。大概列出文獻。

Is there a way to edit a commit message on GitHub? https://superuser.com/questions/751699/is-there-a-way-to-edit-a-commit-message-on-github
git 查看某個文件下的某個commit的修改記錄 https://blog.csdn.net/m_review/article/details/79315556
如何修改Git commit的信息 https://www.cnblogs.com/shenh062326/p/git.html

更新:2019年5月6日

1 如何把本地刪除的文件同步到github

場景:在本地倉庫中,我刪除了一個文件夾,然後git status就會發現:有很多deleted files。但是這種刪除怎麼同步到github倉庫(origin master)呢?

解決方案:

git add -ugit commit -m "<your comments>"git push origin master

參考:
How to remove multiple deleted files in Git repository https://stackoverflow.com/questions/6004453/how-to-remove-multiple-deleted-files-in-git-repository
git add -A 和 git add . 的區別 https://www.cnblogs.com/skura23/p/5859243.html

2 更新遠程代碼到本地倉庫

git fetch origin mastergit log -p master.. origin/mastergit merge origin/master

參考:git fetch 更新遠程代碼到本地倉庫 http://www.cnblogs.com/chenlogin/p/6592228.html

參考文獻2

[7] git fetch 更新遠程代碼到本地倉庫 https://www.cnblogs.com/chenlogin/p/6592228.html

[8] git強制覆蓋本地代碼和強制推送本地到遠程倉庫 https://blog.csdn.net/sheep8521/article/details/81383865

關於pull、fetch還參考了:
git pull命令 https://www.yiibai.com/git/git_pull.html
詳解git pull和git fetch的區別: https://blog.csdn.net/weixin_41975655/article/details/82887273

[9] Git中三種文件狀態及其轉換 https://phplaber.iteye.com/blog/1699926

[10] URLs with spaces do not render a links in markdown cells https://github.com/nteract/nteract/issues/914

出錯:fatal: unable to access 『https://github.com/*.git/』: Failed to connect to github.com port 443: Timed out

在運行:git push origin master 的時候,出錯:

fatal: unable to access 『https://github.com/DehengYang/FL-APR-research.git/』: Failed to connect to github.com port 443: Timed out

參考:
+ git clone fatal: unable to access 『https://github.com/carlon/demo.git/』: Failed to connect to github.com port 443: Timed out https://www.cnblogs.com/wy1935/p/7210114.html

先後在命令行(我的是windows git bash)中輸入:

git config --global http.proxygit config --global --unset http.proxy

當然,也可能是網絡不好,多試幾次就行。

github md文件的編寫

GihubMarkdown中的複選框按鈕的實現 https://blog.csdn.net/Erice_s/article/details/80202536

How to add color to Github’s README.md file https://stackoverflow.com/questions/11509830/how-to-add-color-to-githubs-readme-md-file

如何向Github README.md中添加圖片 https://blog.csdn.net/qq_33207292/article/details/80068154

git查看指定的commit id對應的信息

相關焦點

  • 安卓免費學習的博客,github,CSDN,視頻教程,一網打盡!
    coder-pig(Android入門):http://blog.csdn.net/coder_pig張鴻洋:http://blog.csdn.net/lmj623565791張愛民(愛哥)(自定義View):http://blog.csdn.net/aigestudio羅昇陽(老羅)(Android源碼解析):http://blog.csdn.net
  • material vue專題及常見問題 - CSDN
    腳手架https://github.com/vuematerial/webpackvue-webpack-boilerplateA full-featured Webpack setup + VueMaterial with hot-reload,
  • c++信號與槽專題及常見問題 - CSDN
    開源庫下載:包含說明文檔,源碼,實例:https://download.csdn.net/download/u012372584/131624962、直接編譯會有錯誤,需要對源碼中的一句進行更改:將第419行 :typedef sender_set::const_iterator const_iterator; 更改為:typedef typename sender_set
  • java籤到功能專題及常見問題 - CSDN
    不嫌代碼寫的爛 可以參考下https://github.com/ren2881971/WeChat著急實現功能 沒重構 ######/*** 微信授權***/public class CUserOauthWeixinRedirect extends ABaseCommand
  • android布局詳解專題及常見問題 - CSDN
    若原根節點已經設置了android:id屬性值,那麼<include>標籤的android:id屬性值將被覆蓋workspace_screen.xml布局文件中的根節點的android:id屬性值。<include>標籤還可以覆蓋被引用的布局文件根節點額所有與布局有關的屬性(也就是以「android:layout_」開頭的屬性)。
  • f檢驗 matlab專題及常見問題 - CSDN
    15.71985 15.91986 15.71987 16.71988 15.31989 16.11990 16.2MATLAB實現參考網上多個代碼可得https://www.ilovematlab.cn/thread-246993-1-1.htmlhttps://blog.csdn.net
  • redis 槽是什麼專題及常見問題 - CSDN
    新節點執行命令,把命令執行結果返回給客戶端moved異常與ask異常的相同點和不同點兩者都是客戶端重定向 moved異常:槽已經確定遷移,即槽已經不在當前節點 ask異常:槽還在遷移中3.5.3 smart智能客戶端使用智能客戶端的首要目標:追求性能從集群中選一個可運行節點,使用Cluster slots初始化槽和節點映射將Cluster slots的結果映射在本地
  • 垂直行業雲計算專題及常見問題 - CSDN
    金山分級診療輔助管理平臺架構圖基於「ABC」的核心理念,金山醫療雲構建了一體化的「1+4」結構,即1個雲數據中心,4個平臺——面向醫療管理者的金山大數據分析平臺,面向醫院的金山基礎設施雲平臺和大數據分析平臺,面向基層機構的金山基層醫療衛生服務雲平臺,面向居民的金山公眾健康雲平臺,這些平臺覆蓋
  • c#引用包專題及常見問題 - CSDN
    歡迎轉載、使用、重新發布,但務必保留文章署名呂毅(包含連結:https://walterlv.blog.csdn.net/),不得用於商業目的,基於本文修改後的作品務必以相同的許可發布。如有任何疑問,請與我聯繫。
  • 商品資料庫設計 電商系統專題及常見問題 - CSDN
    商品模型的演化在以前,那時 CMS 很流行,最常見的模型是欄目 – 文章模型。於是做電商的時候,自然就繼承了這種一對多的關係。只是欄目變成了分類,文章變成了商品。商品也具備了獨特的業務屬性。現在很多電商網站上左側的菜單,也就是這個分類。
  • android啟動頁設計專題及常見問題 - CSDN
    轉載請註明出處:http://blog.csdn.net/wangjihuanghun/article/details/63255144啟動頁幾乎成為了每個app的標配,有些商家在啟動頁中增加了開屏廣告以此帶來更多的收入。
  • 華為雲崗位專題及常見問題 - CSDN
    圖片來源網絡深圳移動5G今年將陸續覆蓋全市各區中心區域>據深圳特區報報導,深圳移動5G網絡今年將陸續覆蓋全市各區中心區域,實現政務中心、交通樞紐、醫療健康、文化活動、核心商圈、高新技術產業聚集區等十大場景5G網絡覆蓋。
  • eviews的線性回歸專題及常見問題 - CSDN
    同時藉此實驗達到如下目的:• 熟悉建立多元線性回歸模型解決實際問題的過程;• 掌握多元線性回歸模型的基本思想和操作;• 鞏固所學,加深對課程內容的理解。(數據說明:數據取自國家統計局,系2016年的數據。
  • cluster redis 分槽專題及常見問題 - CSDN
    為了使得集群能夠水平擴展,首要解決的問題就是如何將整個數據集按照一定的規則分配到多個節點上,常用的數據分片的方法有:範圍分片,哈希分片,一致性哈希算法和虛擬哈希槽等。範圍分片假設數據集是有序,將順序相臨近的數據放在一起,可以很好的支持遍歷操作。範圍分片的缺點是面對順序寫時,會存在熱點。
  • 頂級hadoop管理工具專題及常見問題 - CSDN
    在這裡,您可以更深入地了解兩者之間的區別: Cloudera Impala是用於查詢處理的本地語言,它有助於減少在基於MapReduce / Tez的作業中發現的啟動程序的常見開銷。 Impala隨時準備處理程序,並且其守護進程在引導時啟動,而Hive出現「冷啟動」問題。
  • wifi物聯網優勢專題及常見問題 - CSDN
    很多都知道WIFI,但是很少有人知道WIFI的中文名稱是什麼,WIFI的中文譯名為無線高保真,顧名思義WIFI的特性就是傳輸速度快,另外其功率強,覆蓋範圍廣,可在數百米範圍內進行組網,但其功耗相對也大,需要經常充電。
  • 工業網際網路雲平臺問題專題及常見問題 - CSDN
    在這次M+M大會上,我們可以看到Predix Machine,幾乎覆蓋了邊緣設備需要解決的所有問題(①工業協議解析;②靈活的數據採集;③同平臺的配合;④本地存儲和轉發;⑤支持運行平臺端的應用;⑥豐富的安全策略;⑦;本地設備通信),並且有非常多的合作夥伴已經基於這個框架開發出了眾多邊緣網關產品。
  • 方差檢驗專題及常見問題 - CSDN
    對於兩組服從正態分布的定量數據的平均數差異的檢驗均可以採用t檢驗,常見的t檢驗有單樣本t檢驗、獨立樣本t檢驗和配對樣本t檢驗。1.單樣本T檢驗單樣本t檢驗是指對樣本平均數與總體平均數的差異進行的顯著性檢驗。即檢驗單個變量的均值是否與給定的常數之間存在差異。
  • linux 桌面無法啟動專題及常見問題 - CSDN
    你可以將一個時鐘設置為本地時間,並將其他時鐘同步到其他時區。這使得了解不同時間變得更加容易。在本教程中,我將向你展示如何在 Ubuntu 和其他使用 GNOME 桌面環境的 Linux 發行版中添加其他時鐘。
  • iot 華為 高通專題及常見問題 - CSDN
    通知指出,到2017年末,實現NB-IoT網絡覆蓋直轄市、省會城市等主要城市,基站規模達到40萬個。到2020年,基站規模達到150萬個。應用方面,通知指出2017年實現基於NB-IoT的M2M(機器與機器)連接超過2000萬,2020年總連接數超過6億。