日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

GitHub 基本常用知识解答

發布時間:2024/9/30 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 GitHub 基本常用知识解答 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1、Fork、Watch、Star 是什么意思?

?

fork的意思是從別人的代碼庫中復制一份到你自己的代碼庫,與普通的復制不同,fork包含了原有庫中的所有提交記錄,

fork后這個代碼庫是完全獨立的,屬于你自己,你可以在自己的庫中做任何修改,當然也可以通過Pull Request向原來的庫提交合并請求。

?

順便說一下Watch和Star:

  • Watch,意思是關注,關注后,代碼庫中有新的commit你都會收到通知;

  • Star,與watch不同,star相當于收藏,你可以方便地找到你star過的庫,但是不會收到關于那個庫的任何通知。???

?

2、gitHub 上的SSH公鑰 是什么意思 ?

???? 作用:使用SSH公鑰可以讓你在你的電腦和Git@OSC通訊的時候使用安全連接

????

通常,通過ssh登錄遠程服務器時,使用密碼認證,分別輸入用戶名和密碼,兩者滿足一定規則就可以登錄。但是密碼認證有以下的缺點:

  • 用戶無法設置空密碼(即使系統允許空密碼,也會十分危險)
  • 密碼容易被人偷窺或猜到
  • 服務器上的一個帳戶若要給多人使用,則必須讓所有使用者都知道密碼,導致密碼容易泄露,而且修改密碼時必須通知所有人

而使用公鑰認證則可以解決上述問題。

  • 公鑰認證允許使用空密碼,省去每次登錄都需要輸入密碼的麻煩
  • 多個使用者可以通過各自的密鑰登錄到系統上的同一個用戶

?公鑰認證的原理

所謂的公鑰認證,實際上是使用一對加密字符串,一個稱為公鑰(public key),任何人都可以看到其內容,用于加密;

另一個稱為密鑰(private key),只有擁有者才能看到,用于解密。通過公鑰加密過的密文使用密鑰可以輕松解密,但根據公鑰來猜測密鑰卻十分困難。

ssh 的公鑰認證就是使用了這一特性。服務器和客戶端都各自擁有自己的公鑰和密鑰。

為了說明方便,以下將使用這些符號。

Ac客戶端公鑰
Bc客戶端密鑰
As服務器公鑰
Bs服務器密鑰

在認證之前,客戶端需要通過某種方法將公鑰 Ac 登錄到服務器上。

?

認證過程分為兩個步驟。

  • 會話密鑰(session key)生成
  • 客戶端請求連接服務器,服務器將 As 發送給客戶端。
  • 服務器生成會話ID(session id),設為 p,發送給客戶端。
  • 客戶端生成會話密鑰(session key),設為 q,并計算 r = p xor q。
  • 客戶端將 r 用 As 進行加密,結果發送給服務器。
  • 服務器用 Bs 進行解密,獲得 r。
  • 服務器進行 r xor p 的運算,獲得 q。
  • 至此服務器和客戶端都知道了會話密鑰q,以后的傳輸都將被 q 加密。
  • 認證
  • 服務器生成隨機數 x,并用 Ac 加密后生成結果 S(x),發送給客戶端
  • 客戶端使用 Bc 解密 S(x) 得到 x
  • 客戶端計算 q + x 的 md5 值 n(q+x),q為上一步得到的會話密鑰
  • 服務器計算 q + x 的 md5 值 m(q+x)
  • 客戶端將 n(q+x) 發送給服務器
  • 服務器比較 m(q+x) 和 n(q+x),兩者相同則認證成功
  • ?

    3、.gitignore文件

    .gitignore顧名思義就是告訴git需要忽略的文件,這是一個很重要并且很實用的文件。

    一般我們寫完代碼后會執行編譯、調試等操作,這期間會產生很多中間文件和可執行文件,這些都不是代碼文件,是不需要git來管理的。

    我們在git status的時候會看到很多這樣的文件,如果用git add -A來添加的話會把他們都加進去,而手動一個個添加的話也太麻煩了。

    這時我們就需要.gitignore了。比如一般c#的項目我的.gitignore是這樣寫的:

    ?

    4、???Git fetch和git pull的區別

    ????????? Git中從遠程的分支獲取最新的版本到本地有這樣2個命令:
    ??? 1.?git fetch:相當于是從遠程獲取最新版本到本地,不會自動merge

    ???? git fetch origin master
    ???? git log -p master..origin/master
    ???? git merge origin/master
    ? ? 以上命令的含義:

    ?? 首先從遠程的origin的master主分支下載最新的版本到origin/master分支上
    ?? 然后比較本地的master分支和origin/master分支的差別
    ?? 最后進行合并
    ? ?上述過程其實可以用以下更清晰的方式來進行:

    ??? git fetch origin master:tmp
    ??? git diff tmp?
    ??? git merge tmp

    ????從遠程獲取最新的版本到本地的test分支上之后再進行比較合并
    2.?git pull:相當于是從遠程獲取最新版本并merge到本地

    ??? git pull origin master

    ??? 上述命令其實相當于git fetch 和 git merge
    ??? 在實際使用中,git fetch更安全一些因為在merge前,我們可以查看更新情況,然后再決定是否合并

    總結

    以上是生活随笔為你收集整理的GitHub 基本常用知识解答的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。