Github與Git學習筆記

Github與Git

以前只知道在GitHub上下一些代碼,然後在本地進行參考學習,由於最近寫代碼的過程中遇到了總是要頻繁修改版本的情況,纔開始決定了解學習一下可用於版本管理的GitHub與Git,以下爲學習過程的一點筆記。

爲什麼要用到Github?

Github是一個面向軟件的託管平臺,什麼時候會用到它?

  • 想要造輪子或者復現論文的時候,先去github上看看別人有沒有做過以及別人是怎麼做的,畢竟代碼公開,在遵循開源協議的前提下,可以copy下來用的。
  • 幾個小夥伴合作開發小軟件小項目的時候,放到github上來實現合作開發,相當於在雲上的代碼倉庫(公有倉庫免費,私有收費),還免費,省去了單獨建設倉庫服務器的成本,還有自己搭建物理主機服務器的麻煩。

要用Github,我需要會點什麼?

需要會Git

  • 那麼什麼是Git?

    • 是用來實現代碼版本歷史管理的工具
  • 爲什麼要會Git 或者說 Git有什麼用?

    • 講個設計師的段子,金主爸爸要你改第一版,第二版,第三版,第n版, 你通宵改了後,他說,還是第一版的好,改回來吧。如果這個時候你沒有留存第一版的話,就會很麻煩。代碼也是一樣,老闆要你改第一版,第二版,第n版,最後或許還是要某一版(可能因爲新的版本不穩定之類的問題),就需要你留存下來某一版的歷史記錄,這就需要Git的幫助,即需要Git來做版本控制
    • 幾個小夥伴一起開發東西,各自將各自的代碼傳到服務器上,然後有需要時候下載其他人的代碼進行修改,修改後再傳上去,這就需要Git記錄誰,什麼時候,下載了什麼東西,改了什麼內容,這將有助於整個團隊開發的管理
  • 怎麼用Git?

      1. 下載安裝window下載地址

        [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-ON2koxe6-1590822124389)(Git與Github.assets/1590761161263.png)]

        剩下的我就是幾乎一路默認下來。。。

        打開後的界面大概是這樣:
        [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-9mvXKwPe-1590822124391)(Git與Github.assets/1590761659625.png)]

      1. 設置自己的名字以及郵箱:
        [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-x3S8Bj3w-1590822124392)(Git與Github.assets/1590763923425.png)]

        $ git config --global user.name "Your Name"
        $ git config --global user.email "[email protected]"
        
      1. 使用Git:

        • 建庫&提交:
        1. 進入待管理的文件夾:

          [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-xUNuDnhm-1590822124394)(Git與Github.assets/1590764080089.png)]
          文件夾內情況爲:

          [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-JudX5xug-1590822124397)(Git與Github.assets/1590764428031.png)]

        2. git init 初始化一個本地倉庫

          [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-E3YXuX1K-1590822124398)(Git與Github.assets/1590764130780.png)]

        3. 將文件內的helloWorld.txt先放到倉庫緩存區,再正式提交到倉庫。

          [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-WWfNV4cf-1590822124398)(Git與Github.assets/1590764844764.png)]

          其中git add helloWorld.txt的意思是將文件添加到倉庫的緩存區(add可多次),而git commit -m "添加了helloWorld.txt"則是將其正式提交到倉庫,而"添加了helloWorld.txt"則是告訴對這次更改的描述(commit一次性全提交了)。

        • 回退版本:

          • git log 查看版本的情況:
            [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-cd39D3Es-1590822124399)(Git與Github.assets/1590765234029.png)]
            第一行是commit id,可認爲其是版本號。藍色的HEAD表示是當前版本。
            第二行是作者,包括我的名字以及郵箱。
            第三行是修改時間。

          • 回撤回從前的某一版本:

            git reset --hard HEAD^
            

            HEAD^表示上一版本,HEAD^^表示上兩個版本,幾個^符號表示往上幾個版本,當版本過多的時候,比如回退1000個版本的時候寫成HEAD~1000即可。

          • 恢復到新版本:
            首先利用git reflog找到新版本的commit id,然後git reset --hard commitId即可,Id寫前幾位即可(能找到唯一的版本即可)。

會了Git後,我該怎麼使用GitHub?

首先得去GitHub上註冊個賬號。

添加SSH Key,證明你是你

如果你想要提交一份代碼到GitHub上去,那麼GitHub需要知道是你而不是張三李四提交的,這就需要明確你是你,而已知Git支持SSH協議,因此可以通過公鑰來知道你是你。

ssh-keygen -t rsa -C "[email protected]"創建SSH Key, 雙引號內爲自己的郵箱地址,一路回車下去,然後可以在主目錄中找到.ssh目錄,裏面有兩個文件,如下圖所示,其中公鑰可以告訴別人,私鑰不行:
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-Ti7Xo5W3-1590822124399)(Git與Github.assets/1590810274932.png)]

將公鑰的內容複製。

登錄我的github,然後依次"Account settings" — “SSH Keys and GPG keys” — “New SSH Key” 填上自定義的title,並在Key文本框內粘貼公鑰中的內容即可。
在這裏插入圖片描述

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-nQbwk5EY-1590822124400)(Git與Github.assets/1590810526850.png)]

添加後的Key爲:
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-k9e8Way2-1590822124401)(Git與Github.assets/1590811007145.png)]

創建倉庫

創建倉庫,然後自己填一些這個項目的信息。

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-26RXtSCQ-1590822124401)(Git與Github.assets/1590811831817.png)]

將本地倉庫和GitHub倉庫進行相互的關聯

1. 本地倉庫 —> GitHub倉庫

本地已有的和遠程倉庫同名的倉庫可以進行關聯,比如:
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-wGbeFbE4-1590822124402)(Git與Github.assets/1590820527565.png)]

git remote add origin git@github.com:flow-specter/0529_testGit.git
git push -u origin master

即可將同名的本地倉庫內容推送上去。

注意,如果出現以下報錯:

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-rYr5XEa6-1590822124402)(Git與Github.assets/1590821681402.png)]

可通過git remote rm origin刪除origin後,再用GitHub建議的命令git remote add origin [email protected]:flow-specter/0529_testGit.git , git push -u origin master即可。

2. GitHub倉庫 —> 本地倉庫

剛開始開發時建議首先創建遠程庫,再利用Git clone從遠程庫克隆。

GitHub上的庫會有其地址,可以被用來克隆,比如:

git clone [email protected]:flow-specter/fucking-algorithm.git

參考鏈接

簡書 Git和Github使用教程

簡書 git上傳代碼至github以及錯誤集錦

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章