git學習筆記

簡介

Git是一款免費、開源的分布式版本控制系統,用于敏捷高效地處理任何或小或大的項目。分布式相比于集中式的最大區別在于開發者可以提交到本地,每個開發者通過克隆,在本地機器上拷貝一個完整的Git倉庫。
Git是一個開源的分布式版本控制系統,可以有效、高速的處理從很小到非常大的項目版本管理。Git 是 Linus Torvalds 為了幫助管理 Linux 內核開發而開發的一個開放源碼的版本控制軟件。

  • Git的功能特性:
    從一般開發者的角度來看,git有以下功能:
    1、從服務器上克隆完整的Git倉庫(包括代碼和版本信息)到單機上。
    2、在自己的機器上根據不同的開發目的,創建分支,修改代碼。
    3、在單機上自己創建的分支上提交代碼。
    4、把服務器上最新版的代碼fetch下來,然后跟自己的主分支合并。
    5、生成補丁(patch),把補丁發送給主開發者。
    6、一般開發者之間解決沖突的方法,開發者之間可以使用pull 命令解決沖突,解決完沖突之后再向主開發者提交補丁。

  • Git 與Github區別
    git 是一個軟件,可以在 .git 文件夾里面維護你的歷史代碼。指定了 remote 鏈接和用戶信息之后,git 可以幫你將提交過的代碼 push 到遠程的倉庫或者將遠程倉庫的代碼 fetch 到本地。
    github是一個基于git的項目托管平臺,它提供了web界面,你可以在上面創建資源倉庫來存放你的項目。在本地或服務器創建一個資源倉庫通過shell命令或圖形用戶界面可以和遠端的github進行項目同步更新,實現對項目的管理。

初步使用

  • 安裝
$ git
xcode-select: note: no developer tools were found at '/Applications/Xcode.app', requesting install. Choose an option in the dialog to download the command line developer tools.
$ git
usage: git [--version] [--help] [-C <path>] [-c name=value]          
             [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]
             [-p | --paginate | --no-pager] [--no-replace-objects] [--bare]
             [--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>] 
             <command> [<args>]
These are common Git commands used in various situations:

在mac上輸入git查看是否安裝過,沒有安裝則會自動提示安裝,安裝后再次輸入git就可以看到用法提示。

  • 配置
    安裝后需要進行配置:
$ git config --global user.name pingsheng
$ git config --global user.email pingsheng_w@163.com
  • 創建版本庫
$ pwd
/Users/twcn/pingsheng
$ git init
Initialized empty Git repository in /Users/twcn/pingsheng/.git/
$ ls
test1.txt test2.txt
$ git status
On branch master
Initial commit
Untracked files:  (use "git add <file>..." to include in what will be committed)
test1
test2
nothing added to commit but untracked files present (use "git add" to track)
$ git commit -m "first test"
[master (root-commit) 8451070] first test 
2 files changed, 3 insertions(+) 
create mode 100644 test1.txt 
create mode 100644 test2.txt
$ git status
On branch masternothing to commit, working directory clean
  • 創建與刪除分支
$ git branch branch1
$ git checkout branch1
Switched to branch 'branch1'
$ git checkout -b branch2
Switched to a new branch 'branch2'
$ git branch -d branch1
Deleted branch branch1 (was 8451070).
  • 遠程庫操作
    首先是添加遠程庫,在GitHub上創建一個與本地git倉庫同名的git倉庫:

然后關聯遠程庫:

但是在進行操作時候報錯了:

$ git remote add origin git@github.com:ApplePP/pingsheng.git
$ git push -u origin master
The authenticity of host 'github.com (192.30.253.113)' can't be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'github.com,192.30.253.113' (RSA) to the list of known hosts.
Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

查了資料后才知道是需要在github中添加ssh key。方法如下:

  • 查看是否已經有了ssh密鑰:cd ~/.ssh如果沒有密鑰則不會有此文件夾,有則備份刪除,生成密鑰:
wangpingsheng% ssh-keygen -t rsa -C pingsheng_w@163.com
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/pswang/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /Users/pswang/.ssh/id_rsa.
Your public key has been saved in /Users/pswang/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:07WN4yPhm4oKMIxwlwtfw8zUakEO0dey+c8q0180WN4 pingsheng_w@163.com
The key's randomart image is:
+---[RSA 2048]----+
|    o+o. .       |
|     Oo + .      |
|. o o B+ +  . .  |
|+. + oo.o. . B . |
|+.  o.  S.o = = E|
| o       o.o o . |
|  .      .ooo .  |
|   .   .o .+oo   |
|    ... .++o.    |
+----[SHA256]-----+
  • 添加密鑰到ssh:
wangpingsheng% ssh-add
Identity added: /Users/pswang/.ssh/id_rsa (/Users/pswang/.ssh/id_rsa)

cat ~/.ssh/id_rsa.pub并將ssh key添加到github中

  • 下面進行測試:
wangpingsheng% ssh git@github.com
The authenticity of host 'github.com (192.30.253.112)' can't be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'github.com,192.30.253.112' (RSA) to the list of known hosts.
PTY allocation request failed on channel 0
Hi ApplePP! You've successfully authenticated, but GitHub does not provide shell access.
Connection to github.com closed.
  • 然后再執行git push
wangpingsheng% git push -u origin master
Counting objects: 4, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (4/4), 258 bytes | 0 bytes/s, done.
Total 4 (delta 0), reused 0 (delta 0)
To git@github.com:ApplePP/pingsheng.git
 * [new branch]      master -> master
Branch master set up to track remote branch master from origin.

就將代碼上傳至Github中:

小結

以前就知道git用來儲存代碼,并且理解到git的分支可以從開發主線上分離開來,然后在不影響主線的同時繼續工作。今天的學習已經初步掌握了git的基本使用方法,但是在關聯遠程庫時遇到了錯誤,師兄指導后又查了資料最后解決了問題,以后多加應用,希望能夠逐漸熟練使用git。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,505評論 6 533
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,556評論 3 418
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,463評論 0 376
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,009評論 1 312
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,778評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,218評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,281評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,436評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,969評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,795評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,993評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,537評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,229評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,659評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,917評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,687評論 3 392
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,990評論 2 374

推薦閱讀更多精彩內容

  • git學習筆記 聲明 本文是本人學習Git過程中所做的筆記,以便日后查閱,文中多有錯漏之處,不建議用作學習材料,文...
    sayonara_yoyo閱讀 691評論 0 1
  • 簡單的記錄一下如何上傳代碼到Github上 上傳本地代碼到GitHub 第一步:建立git倉庫 進入到一個目錄里 ...
    weizujie閱讀 594評論 0 1
  • 操作系統 window10學習來源: http://www.liaoxuefeng.com/wiki 常用 創建...
    hopevow閱讀 790評論 0 17
  • ----------------- Git 學習 ------------------ Git 簡介 Git...
    Junting閱讀 2,240評論 0 3
  • 他的志愿是 在有生之年 把悲傷變成流行 然而志愿未達成 他就死了 死的時候還撐著傘。
    留子堯閱讀 201評論 0 4