不學習就淘汰
摘自GitHub入門與實踐
設定SSH KEY
- GitHub 上連線已有倉庫時的認證,是通過使用了 SSH 的公開金鑰認證方式進行的。現在讓我們來建立公開金鑰認證所需的 SSH Key,並將其新增至 GitHub。已經建立過的讀者,請用現有的金鑰進行設定。
- 執行下面的命令建立 SSH Key。
$ ssh-keygen -t rsa -C "[email protected]"
Generating public/private rsa key pair.
Enter file in which to save the key
(/Users/your_user_directory/.ssh/id_rsa): 按回車鍵
Enter passphrase (empty for no passphrase): 輸入密碼
Enter same passphrase again: 再次輸入密碼
- “[email protected]”的部分請改成您在建立賬戶時用的郵箱地址。密碼需要在認證時輸入,請選擇複雜度高並且容易記憶的組合。
- 輸入密碼後會出現以下結果。
Your identification has been saved in /Users/your_user_directory/.ssh/id_rsa.
Your public key has been saved in /Users/your_user_directory/.ssh/id_rsa.pub.
The key fingerprint is:
fingerprint值 [email protected]
The key's randomart image is:
+---[RSA 2048]----+
|. .+E=o |
|o.o.++o++= |
|.=.*oo oB . |
|==*.+ =o * |
|Boo= * .S o |
|o.+ + . |
| o |
| |
| |
+----[SHA256]-----+
- id_rsa 檔案是私有金鑰,id_rsa.pub 是公開金鑰。
- 執行下面的命令建立 SSH Key。
- 新增公開金鑰,在 GitHub 中新增公開金鑰,今後就可以用私有金鑰進行認證了。
- 點選右上角的賬戶設定按鈕(Account Settings) ,選擇 SSH and GPG Keys 選單。點選 new SSH Key 之後,會出現如圖3.2 的輸入框。在 Title 中輸入適當的金鑰名稱。Key 部分請貼上 id_rsa.pub 檔案裡的內容。id_rsa.pub的內容可以用如下方法檢視。
$ cat ~/.ssh/id_rsa.pub
ssh-rsa 公開金鑰的內容
- 新增成功之後,建立賬戶時所用的郵箱會接到一封提示“公共金鑰新增完成”的郵件。
- 點選右上角的賬戶設定按鈕(Account Settings) ,選擇 SSH and GPG Keys 選單。點選 new SSH Key 之後,會出現如圖3.2 的輸入框。在 Title 中輸入適當的金鑰名稱。Key 部分請貼上 id_rsa.pub 檔案裡的內容。id_rsa.pub的內容可以用如下方法檢視。
- 完成以上設定後,就可以用手中的私人金鑰與 GitHub 進行認證和通訊了。讓我們來實際試一試。
$ ssh -T [email protected]
The authenticity of host 'github.com (207.97.227.239)' can't be established.
RSA key fingerprint is fingerprint值 .
Are you sure you want to continue connecting (yes/no)? 輸入yes
Enter passphrase for key '/c/Users/ww/.ssh/id_rsa': (這裡需要輸入建立SSH Key時設定的密碼)
- 出現如下結果即為成功。
Hi baozc! You've successfully authenticated, but GitHub does not provide shell access.
連線github出錯,解決
如果出現錯誤:
$ git push mp master
ssh: connect to host github.com port 22: Connection timed out
fatal: Could not read from remote repository.Please make sure you have the correct access rights
and the repository exists.
可以採用如下方法:
$ vim .ssh/config
Host github.com
User [email protected].com 註冊時的郵箱
Hostname ssh.github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa
Port 443
測試連線是否成功:
$ ssh -T git@github.com
Enter passphrase for key '/c/Users/Administrator/.ssh/id_rsa':
Hi baozc! You've successfully authenticated, but GitHub does not provide shell access.
公開程式碼
- clone 已有倉庫,嘗試在已有倉庫中新增程式碼並加以公開。首先將已有倉庫 clone 到身邊的開發環境中。、
- 倉庫的路徑,在程式碼倉庫介面選擇 Clone or download > Use SSH > 複製對應路徑
λ git clone [email protected]:baozc/test.git
Cloning into 'test'...
Enter passphrase for key '/c/Users/ww/.ssh/id_rsa':(這裡會要求輸入 GitHub 上設定的公開金鑰的密碼)
remote: Counting objects: 6, done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 6 (delta 0), reused 3 (delta 0), pack-reused 0
Receiving objects: 100% (6/6), done.
Checking connectivity... done.
- 認證成功後,倉庫便會被 clone 至倉庫名後的目錄中。將想要公開的程式碼提交至這個倉庫再 push 到 GitHub 的倉庫中,程式碼便會被公開。
- 程式碼預設下載到使用者目錄下 ~ or C盤 使用者 對應使用者名稱資料夾下
- 倉庫的路徑,在程式碼倉庫介面選擇 Clone or download > Use SSH > 複製對應路徑
進行 push
- 提交程式碼後,只有執行 push,GitHub 上的倉庫才會被更新。
$ git push
Enter passphrase for key '/c/Users/ww/.ssh/id_rsa':
Counting objects: 3, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 349 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To github.com:baozc/test.git
8cc4ff1..6a2c236 master -> master
- 這樣一來程式碼就在 GitHub 上公開了。
git操作命令
git init
初始化倉庫,如果初始化成功,執行了git init
命令的目錄下就會生成 .git 目錄。這個 .git 目錄裡儲存著管理當前目錄內容所需的倉庫資料。git status
檢視倉庫的狀態,工作樹和倉庫在被操作的過程中,狀態會不斷髮生變化。在 Git 操作過程中時常用git status
命令檢視當前狀態,可謂基本中的基本。
- 當檔案太多時,進入某個資料夾,使用
git status .
可以只檢視這個資料夾中的git狀態。
- 當檔案太多時,進入某個資料夾,使用
git add
向暫存區中新增檔案,如果只是用 Git 倉庫的工作樹建立了檔案,那麼該檔案並不會被記入 Git 倉庫的版本管理物件當中。要想讓檔案成為 Git 倉庫的管理物件,就需要用 git add命令將其加入暫存區(Stage 或者 Index)中。暫存區是提交之前的一個臨時區域。
git add xx
命令可以將xx檔案或目錄新增到暫存區git add -A .
來一次新增所有改變的檔案。注意 -A 選項後面還有一個句點.git add -A
表示新增所有內容git add .
表示新增新檔案和編輯過的檔案不包括刪除的檔案git add -u
表示新增編輯或者刪除的檔案,不包括新新增的檔案。
git commit
儲存倉庫的歷史記錄
- 格式
git commit -m description
,例git commit -m "提交描述"
。windows下,請注意使用雙引號,否則可能出現錯誤:error: pathspec 'commit'' did not match any file(s) known to git.
- 如果想要記述得更加詳細,請不加 -m,直接執行
git commit
命令。執行後編輯器就會啟動。在編輯器中記述提交資訊的格式如下:
- 第一行:用一行文字簡述提交的更改內容
- 第二行:空行
- 第三行以後:記述更改的原因和詳細內容
- 將提交資訊按格式記述完畢後,請儲存並關閉編輯器,以 #(井號)標為註釋的行不必刪除。隨後,剛才記述的提交資訊就會被提交。
- 中止提交 如果在編輯器啟動後想中止提交,請將提交資訊留空並直接關閉編輯器,隨後提交就會被中止。
- 只要按照上面的格式輸入,今後便可以通過確認日誌的命令或工具看到這些記錄。
- 在以 #(井號)標為註釋的 Changes to be committed(要提交的更改)欄中,可以檢視本次提交中包含的檔案。
- git 提交出現這個錯誤:
fatal: Unable to create ‘project_path/.git/index.lock’: File exists.
- 解決方案:需要刪除.git\index.lock,在cmder中無法刪除,可以使用git bash。
- 格式
git log
檢視提交日誌,包括可以檢視什麼人在什麼時候進行了提交或合併,以及操作前後有怎樣的差別。
- 只顯示提交資訊的第一行 可以在
git log
命令後加上--pretty=short
- 只顯示指定目錄、檔案的日誌 只要在
git log
命令後加上目錄名,便會只顯示該目錄下的日誌。如果加的是檔名,就會只顯示與該檔案相關的日 志。 - 顯示檔案的改動 如果想檢視提交所帶來的改動,可以加上 -p 引數,檔案的前後差別就會顯示在提交資訊之後。
- 檢視更改前後的差別
git diff
命令可以檢視工作樹、暫存區之間的差別。在沒把檔案加入暫存區時,使用git diff會顯示暫存區和工作樹之間的差別
- 及沒把修改檔案加入暫存區前,使用
git diff
進行比對,如果已經把修改的檔案加入暫存區了,使用git diff
是無法比對的。
- 及沒把修改檔案加入暫存區前,使用
- 檢視工作樹和最新提交的差別
git diff HEAD
檢視本次提交與上次提交之間有什麼差別, HEAD 是指向當前分支中最新一次提交的指標。
- 即指
git add
新增到暫存區的檔案和上次提交(工作樹)檔案的差別 - 不妨養成這樣一個好習慣:在執行
git commit
命令之前先執行git diff HEAD
命令,檢視本次提交與上次提交之間有什麼差別,等確認完畢後再進行 提交。
- 即指
- 比對檔案更改前後差別,沒新增暫存區時使用
git diff
,新增暫存區後使用git diff head
- 比較本地分支和遠端分支的差別
git log 本地分支名.. 遠端主機名/遠端分支名
,可以加-p
引數比較具體修改
- 只顯示提交資訊的第一行 可以在
git diff
命令總結:
working tree
:就是你所工作在的目錄,每當你在程式碼中進行了修改,working tree
的狀態就改變了。index file
:是索引檔案,它是連線working tree
和commit
的橋樑,每當我們使用git-add命令來登記後,index file
的內容就改變了,此時index file
就和working tree
同步了。commit
:是最後的階段,只有commit
了,我們的程式碼才真正進入了git倉庫。我們使用git commit
就是將index file
裡的內容提交到commit
中git diff
:是檢視working tree與index file的差別的。git diff --cached
:是檢視index file與commit的差別的。git diff HEAD
:是檢視working tree和commit的差別的。(你一定沒有忘記,HEAD代表的是最近的一次commit的資訊)- 檢視簡單的diff結果,可以加上–stat引數:
git diff --stat
git diff
輸出格式:$ git diff --cached diff --git a/gfm/git/git.md b/gfm/git/git.md index 87dd5e5..22b5c0d 100644 --- a/gfm/git/git.md +++ b/gfm/git/git.md @@ -83,6 +83,7 @@ To github.com:baozc/test.git ## git操作命令 - `git init` 初始化倉庫,如果初始化成功,執行了 `git init`命令的目錄下就會生成 .git 目錄。這 - `git status` 檢視倉庫的狀態,工作樹和倉庫在被操作的過程中,狀態會不斷髮生變化。在 Git 操作 + - 當檔案太多時,進入某個資料夾,使用`git status .` 可以只檢視這個資料夾中的git狀態。 - `git add` 向暫存區中新增檔案,如果只是用 Git 倉庫的工作樹建立了檔案,那麼該檔案並不會被記 (Stage 或者 Index)中。暫存區是提交之前的一個臨時區域。 - `git add xx`命令可以將xx檔案或目錄新增到暫存區 - `git add -A .`來一次新增所有改變的檔案。注意 -A 選項後面還有一個句點. `git add -A`
- 第一行表示結果為git格式的diff。進行比較的是a版本的git.md(變動前),b版本的git.md(變動後)
- 第二行表示兩個版本的git雜湊值(index區域的87dd5e5物件,與工作目錄區域的22b5c0d物件進行比較),最後的六位數字是物件的模式(普通檔案,644許可權)。
- 第三行表示進行比較的兩個檔案。 “—”表示變動前的版本,”+++”表示變動後的版本。
--- a/gfm/git/git.md
+++ b/gfm/git/git.md
- 後面的行都與官方的合併格式diff相同。
- 差異按照差異小結進行組織,每個差異小結的第一行都是定位語句,由@@開頭,@@結尾。
@@ -83,6 +83,7 @@
表示在原始檔第83行開始的6行和目標檔案第83行開始的7行構成一個差異小結- 這個差異小結中,目標檔案添加了一行
- 當檔案太多時,進入某個資料夾……
- 開頭的行,是隻出現在原始檔中的行(紅色表示刪除該行),+ 開頭的行,是隻出現在目標檔案中的行
git分支命令
git branch
檢視分支。可以看到 master 分支左側標有“*”(星號),表示這是我們當前所在的分支
- 加 -a 引數可以同時顯示本地倉庫和遠端倉庫的分支資訊。
- -r 引數只顯示遠端分支
- -v 顯示分支詳情
- -vv 顯示本地分支與遠端分支的追蹤關係
git checkout -b
——建立並切換分支git checkout -
切換回上一個分支,像上面這樣用“-”(連字元)代替分支名,就可以切換至上一個分支。- 特性分支 顧名思義,是集中實現單一特性(主題),除此之外不進行任何作業的分支。在日常開發中,往往會建立數個特性分支,同時在此之外再保留一個隨時可以釋出軟體的穩定分支。穩定分支的角色通常由 master 分支擔當。即便在開發過程中發現了 BUG,也需要再建立新的分支,在新分支中進行修正。
- 主幹分支 是剛才我們講解的特性分支的原點,同時也是合併的終點。通常人們會用 master 分支作為主幹分支。主幹分支中並沒有開發到一半的程式碼,可以隨時供他人檢視。有時我們需要讓這個主幹分支總是配置在正式環境中,有時又需要用標籤 Tag 等建立版本資訊,同時管理多個版本釋出。擁有多個版本釋出時,主幹分支也有多個。
git merge
——合併分支,為了在歷史記錄中明確記錄下本次分支合併,我們需要建立合併提交。因此,在合併時加上--no-ff
引數。
- 例:
git merge --no-ff feature-A
,隨後編輯器會啟動,用於錄入合併提交的資訊。預設資訊中已經包含了是從 feature-A 分支合併過來的相關內容,所以可不必做任何更改。將編輯器中顯示的內容儲存,關閉編輯器
- 例:
git log -- graph
以圖表形式檢視分支
更改提交的操作
git reset
——回溯歷史版本
git rest --hard hashId
要讓倉庫的 HEAD、暫存區、當前工作樹回溯到指定狀態,需要用到git rest --hard hashId
命令git reflog
檢視當前倉庫的操作日誌git log
命令只能檢視以當前狀態為終點的歷史日誌
- 檢視衝突部分並將其解決,如下衝突:
#Git教程
<<<<<<< HEAD
-feature-A
=======
-fix-B
>>>>>>> fix-B
- ======= 以上的部分是當前 HEAD 的內容,以下的部分是要合併的 fix-B 分支中的內容
- 修改後:
```
# Git教程
- feature-A
- fix-B
```
- git commit --amend
——修改提交資訊,要修改上一條提交資訊,可以使用該命令。
```
$ git commit --amend
```
- 執行上面命令後,編輯器就會啟動
```
old commit message
#Please enter the commit message for your changes. Lines starting
#with '#' will be ignored, and an empty message aborts the commit.
#Date: Tue Nov 29 14:14:25 2016 +0800
#On branch bao
#Your branch is up-to-date with 'mp/bao'.
#Changes to be committed:
# modified: test
#Changes not staged for commit:
# modified: git.md
```
- 編輯器中顯示的內容如上所示,其中包含之前的提交資訊。
- 修改提交資訊後儲存
- git rebase -i
——壓縮歷史。在合併特性分支之前,如果發現已提交的內容中有些許拼寫錯誤等,不妨提交一個修改,然後將這個修改包含到前一個提交之中,壓縮成一個歷史記錄。
- 多次提交記錄合併成一次
推送至遠端倉庫
相關推薦
不學習就淘汰
摘自GitHub入門與實踐 設定SSH KEY GitHub 上連線已有倉庫時的認證,是通過使用了 SSH 的公開金鑰認證方式進行的。現在讓我們來建立公開金鑰認證所需的 SSH Key,並
不學習就一無所知
ive pro str 12px fff 分享圖片 情況下 響應 直接 在第一周,我寫的作業都只需要利用已有的一點皮毛知識,但小知識不學不練也確實不會。 第一點,找圖片裏的顏色RGB值:可以用電腦的附件畫圖,選擇顏色吸管點擊顏色打開調色盤就可以顯示RGB值;也可以使用QQ,
程式設計師上網吐槽:不學習就感覺特別空虛,網友:都是被現實逼的
程式設計師作為網際網路行業的“螺絲釘”,在外界看來程式設計師的工作是非常枯燥泛味的,但是對喜愛這一行的人來說,每天都是充滿激情與挑戰的。因為在網際網路世界裡,程式設計師可以編織出自己想象中的“一切”。但是這“一切”是不穩定的,需要及時更新,比如解決bug,所以不少程式設計師都是充滿焦慮的。就有一名程
如何學習視覺化監控你的爬蟲!爬蟲一個不小心就會犯法的!
好,開始今天的文章。 今天主要是來說一下怎麼視覺化來 監控你的爬蟲的狀態 。 相信大家在跑爬蟲的過程中,也會好奇自己養的爬蟲一分鐘可以 爬多少頁面 , 多大的資料量 ,當然查詢的方式多種多樣。今天我來講一種視覺化的方法。 關於爬蟲資料在mongodb裡的版本我寫了一個可以熱更新配置的版本
大資料開發學習 重難點全面解析,如果你不知道就快收藏吧
大資料開發工程師,很多人都向往的職業,但總有這樣那樣的理由,在逼迫這自己放棄。明明知道大資料良好的前景,明明知道學完大資料可以找到一份很好的工作,但就是不會對自己下狠心。大資料培訓老師總結了學生在學習大資料開發過程中遇到的難點,幫助大家逐一攻克難關! 大資料開發,有4個階段: 1、資料
算法的學習就像打副本
慢慢 大腦 副本 未來 nbsp 你會 數學基礎 滿了 連續 想連續幾周每天都研究算法是不怎麽現實的一件事情。 算法的學習就像打副本。網遊大都是這樣子的,團本每周都有固定的CD,每個團本有幾個BOSS,相應的BOSS掉落固定的裝備和材料等。首先,團本有周CD
robotframework 判斷下拉框是否存在,如果存在就執行下拉框操作,不存在就跳過執行下拉框操作,進行下一步操作;
新頁面 存在 robot sel log 是否 work val image #本人新手,僅做學習記錄之用 因為工作要求,打開的ui頁面,根據前面篩選的條件不同,跳轉的新頁面不同,本記錄涉及的就是有下拉框和沒有下拉框,所以要對新打開的頁面進行判斷;run keyword
C#winform判斷鼠標30秒不動就關閉窗口
csharp pri nbsp spa nth nvi () class mouse public partial class BaseForm : Form { private Timer timer; int x, y;
爬蟲:網頁裏元素的xpath結構,scrapy不一定就找的到
源代碼 發現 插件 結構 完成 網頁 分享 動態生成 http 這種情況原因是html界面關聯的js文件可能會動態修改DOM結構,這樣瀏覽器完成了動態修改DOM,在 瀏覽器上看到的DOM結構,就和後臺抓到的DOM結構不通 舉例:新浪微博發的微博,在瀏覽器通過firebug的
機器不學習:用神經模塊網絡學習推理
model tensor 作用 參考 我們 arr 生成 人工 相關 機器不學習 jqbxx.com-機器學習好網站 假設我們正在建造一個家用機器人,並希望它能夠回答與它周圍的一些問題。我們可能會它問這樣的問題: 我們如何確保機器人可以正確回答這些問題?深度學習的標準
機器不學習:一種提升預測能力的方法-機器學習模型
範圍 和集 最重要的 機器 免費 現實 良好的 例子 永恒 機器不學習 jqbxx.com -機器學習好網站 沒有哪個機器學習模型可以常勝,如何找到當前問題的最優解是一個永恒的問題。 幸運的是,結合/融合/整合 (integration/ combinat
機器不學習:word2vec是如何得到詞向量的?
梯度 true day loss class win dex 得到 word2vec 機器不學習 jqbxx.com -機器學習、深度學習好網站 word2vec是如何得到詞向量的?這個問題比較大。從頭開始講的話,首先有了文本語料庫,你需要對語料庫進行預處理,這個處理流
如數據不存在就插入,存在就更新
插入數據 指定 插入行 ast select OS 原子操作 定義 重復記錄 最近在寫爬蟲時遇到一個問題,有些數據有隔一段時間後重新爬,我想讓Mysql執行以下功能,當mysql有一條數據時,如果新數據更來就更新,如果沒有,就插入, 方法一、手工判斷 插入一條數據的時候,
SQL註入其實很簡單,別一不留神就被利用了
SQL註入 sqlmap SQL防註入 SQL註入這個詞相信大家應該都不陌生,而且每年都會有這樣子的事情發生,下面我先帶大家回憶11年兩期起比較經典的案例事件: 1、SONY索尼事件2011年4月,著名的×××組織Anonymous***SONY一個網站,一星期後才被發現7千萬的用戶個人信息,其中
結構中如果包含AnsiString,是不是就不能簡單的復制?
手表 爆炸 復制 南方 故事 天空 難受 中間 兩個 今年春遲,春節已過去很久天氣依然寒冷。對於生於南方的我來說, 10 攝氏度 以下的氣溫足以讓我很難受。 周末,天空透過窗隙投進來一束灰白的光,讓我讀取到今天又是陰冷的一天。伸手去摸床頭櫃上的手表,時間已是中午。記得昨晚是
機器不學習:基於知識圖譜推理的關系推演
操作 投影 bow 分數 和源 裏的 常見 ati 直接 對於知識圖譜的關註可以分為兩個方面:知識圖譜的構建和基於知識圖譜數據結構的應用。知識圖譜的構建主要關註如何整合結構化、非結構化的數據,實現用統一的語義數據結構如三元組RDF形式的數據存儲。基於知識圖譜的應用主要關註如
SSH連接linux時,長時間不操作就斷開的解決方案(增強版)
正常 每分鐘 指定 防止 variable 當前 實現 客戶 不發送 1、第一次嘗試失敗 修改/etc/ssh/sshd_config文件, 找到 ClientAliveInterval 0 ClientAliveCountMax 3 並將註釋符號("#")去掉, 將Cli
Python3基礎 setattr 設置對象的屬性值,如果屬性不存在就創建一個
down strong 訪問 8.0 rmp 一個 nac rtc pro ? python : 3.7.0 OS : Ubuntu 18.04.1 LTS
Python3基礎 setattr 設置對象的屬性值,如果屬性不存在就創建
att finish 5.1 python 解釋型 anaconda markdown block 訪問 ? python : 3.7.0 OS : Ubuntu 18.04.1
UML基本語法,這都看不懂就放棄學UML吧~
百度百科上面對UML的解釋: 簡單地說,UML是軟體開發的圖紙——它對於軟體的意義就像建築物的圖紙對於建築物一樣。 這裡主要解釋基本語法(以下使用starUML繪製): 類(class): 一般來說,類圖用這樣的矩形表示,第一行是類名(抽象類類名用斜體),第二行是類的