Git和Github

-1概述

git三種操作

從git讀取數(shù)據(jù)
改動代碼
將改動傳回git

兩個不同的repository

remote repository 遠程庫
local repository 本地庫

0 前期準備

0.1 GitHub賬號注冊

GitHub官網(wǎng)上直接注冊賬號就行了攀例,要分清name和ID氛什,比如我的username = xiaozhou琳疏,但是ID = 135****569,另外,Windows下還可以下gitHub 桌面版聚至,是一個操作GUI界面廉涕,作用和git命令是一樣的,很容易上手固额,也容易查看。

0.2 Git下載安裝

我是在Windows下使用的git煞聪,也可以在官方Git下載直接下載就行了斗躏,中間正常安裝一般不會出什么錯,完成后昔脯,在任何一個文件夾點擊鼠標右鍵啄糙,或者在所有程序中,都能看到以下兩個選項:

git選項

(注:鼠標右鍵選項中沒有g(shù)it CMD)

0.3 一些配置

  1. 首先配置用戶名和郵箱
      我就是安裝github上的注冊信息配置的云稚,打開git cmd隧饼,一般配置全局變量,使用
git config --global user.name "你的名字"
git config --global user.email "你的郵箱"

若后面忘了本地所配置的用戶名和郵箱信息静陈,也可以在git cmd中查看和修改

git config  user.name
git config  user.email 
  1. git(本地)和github(遠程)鏈接起來
      為了不用每次從本地push到遠程時都輸入賬目密碼燕雁,在本地生成一個SSH密碼,包括公有和私有兩個秘鑰鲸拥,我們將公有秘鑰設(shè)置給github賬號拐格。同樣,在git cmd中使用如下命令:
ssh-keygen -t rsa

然后會提示你輸入保存秘鑰的文件夾刑赶、密碼等一系列數(shù)據(jù)禁荒,我懶,就一直按回車角撞,默認就行了呛伴,默認的存儲目錄為C:\User\user\.ssh勃痴,是一個隱藏文件夾,打開可以看到

.ssh文件夾

看到那個明顯的.pub文件了嘛热康,對沛申,就是它,公有秘鑰姐军,用文本編輯器打開即可铁材。然后在你的github--setting--SSH and GPG keys中,將其添加進去就行啦奕锌。

1 將本地文件推送到Github(不同branch操作)

1.1 將本地庫與遠程庫建立連接

在github中著觉,進入你要推送到的repository中,在右上角有一個clone or download選項惊暴,點開饼丘,可以看到一個httpsurl,這就是遠程庫的url辽话,復制肄鸽,然后在本地你要進行操作的項目文件夾下,git bash here油啤,(若未init典徘,則需init)

git remote add origin  https://github.com/1358304569/Temp_python

注:在未進行連接的狀態(tài)下,進行push操作益咬,會提示錯誤:
'origin' does not appear to be a git repository

1.2 本地版本管理

在本地項目文件夾下(已于github遠程庫連接)逮诲,開發(fā)過程中可以進行以下幾種操作:

git add **.py  // 將文件加入暫存區(qū),點.表示所有文件
git commit -m "titile" -m "description" //將暫存區(qū)的所有文件加入本地庫中
git reset HEAD^   //回退到上一個commited的版本
git reset --hard 7ba74fxx //按版本號幽告,強制回退

注:commit時梅鹦,可以不加參數(shù),直接打開編輯器操作评腺,默認是vim帘瞭。

1.3 將本地分支推送到遠程庫
  • 新分支操作
git branch //查看所有分支
git branch newbranch //新建分支
git checkout newbranch //切換到此分支
git branch -d newbranch //刪除分支
git branch -D newbranch //強制刪除分支
  • 從下圖可以看出淑掌,在commit以后蒿讥,本地默認創(chuàng)建了master分支,然后創(chuàng)建并切換到SRCC分支抛腕,從第三行到第四行的括號內(nèi)容可以看到芋绸,branch已經(jīng)由master轉(zhuǎn)為SRCC了,此時查看分支可以發(fā)現(xiàn)担敌,指針在SRCC分支上(最后一行)
git分支操作
  • 進行推送
$ git push origin HEAD -u
$ git push origin branchname

此時再github的分支上就可以看到了摔敛。

第一次推送到master分支上時,使用-u參數(shù):
git push -u origin master

2 將遠程庫拉到本地進行操作(同一分支)

2.1 本地初始化

在本地新建一個用于操作的文件夾全封,對其進行git init初始化马昙,用于存放從遠程庫中pull下來的文件桃犬。

2.2 建立連接

git remote add origin https:xxx//git@xxx.git

2.3 進行pull操作

git pull origin master:master

pull操作有幾種用法:
git pull origin <remote_branch>:<local_branch>
git pull origin <remote_branch>
git pull

詳細區(qū)別和用法參考來源小志君的簡書
在此處,嘗試了兩種連接方式 HTTPSSSH行楞,從HTTPS切換到SSH時攒暇,出了一點小問題,具體見最后一節(jié)問題匯總子房。

2.4 將更新push到遠程

git push origin master
在本地進行編輯和add形用、commit后,將最新的版本推送到遠程庫

n-1 一些解釋

1. origin/master是什么

  • origin就是一個名字证杭,當從本地clone遠程庫時田度,git為你默認創(chuàng)建的、指向這個遠程庫的標簽解愤,指向的是repository镇饺,但是master只是這個repository中默認創(chuàng)建的第一個branch,當你push的時候琢歇,因為origin和master都是默認創(chuàng)建的兰怠,所有可以省略,但是最好別偷懶李茫,因為換一個branch的時候就難搞了揭保。

origin/master----遠程庫名/分支名

2. -u 到底是干嘛的
有人說,加了參數(shù)-u后魄宏,以后即可直接用git push 代替git push origin master秸侣;
但真正使用上面,第一次進行push的時候才加u宠互,后面不加味榛,暫時不懂

n 一些問題

1. add file時出現(xiàn)fatal: Not a git repository (or any of the parent directories): .git錯誤
  原因是沒有進行git init,導致沒有生成.git隱藏文件夾予跌。

2. 新建分支時搏色,出現(xiàn)fatal: Not a valid object name: 'master'錯誤
  原因是沒有提交一個對象,要先經(jīng)過add``commit等操作后才會真正建立master分支券册,此時才可以建立其他分支频轿。

由于遠程庫是空的,我們第一次推送master分支時烁焙,加上了-u參數(shù)航邢,Git不但會把本地的master分支內(nèi)容推送的遠程新的master分支,還會把本地的master分支和遠程的master分支關(guān)聯(lián)起來骄蝇,在以后的推送或者拉取時就可以簡化命令膳殷。
$ git push origin branchname
在本地倉庫提交后推送到遠程倉庫
作者:Cloud_9527
鏈接:http://www.reibang.com/p/0995b062396c
來源:簡書
簡書著作權(quán)歸作者所有,任何形式的轉(zhuǎn)載都請聯(lián)系作者獲得授權(quán)并注明出處九火。

3. 在將本地分支推送到遠程庫時赚窃,出現(xiàn)fatal: TaskCanceledException encountered
  原因未知册招,執(zhí)行下列語句可以解決:
$ git config --global credential.helper manager

4. 在git commit 編輯title和description后,按Esc鍵后未推出編輯器

今天用git commit -m “注釋”提交的時候勒极,注釋寫錯了跨细。
首先 使用 git commit --amend 命令,(修改最近一次提交的注釋信息)河质,會進入到vim 編輯器冀惭,然后 你會發(fā)現(xiàn)編輯器里你怎么輸入都沒反應,這是因為vim處在不可編輯狀態(tài)掀鹅,按下字母鍵 c散休,此時進入編輯狀態(tài),可以開始修改注釋信息了乐尊。
在然后 你會發(fā)現(xiàn)你怎么都退出不了戚丸,回到shell了,然后操作如下: ESC --》 退出編輯狀態(tài)扔嵌;接著 連續(xù)按兩次大寫字母鍵 Z限府,接著你會驚喜的發(fā)現(xiàn),終于保存好退出來了痢缎!
windows 系統(tǒng) 胁勺,親測有效!独旷!拿走不謝署穗!
來源:月下小貍123的博客園

4.2 commit補充:在windows下的commit默認編輯器是,是TM啥啊嵌洼,我也不知道案疲,但是,打開Git CMD通過下面語句將其改為vim
$ git config --global core.editor vim麻养,
以后就不會編輯后不知道咋退出啦褐啡。

5. git提示modified:xxx(modified content, untracted content)
原因:目錄沒有被跟蹤;
解決:刪除xxx目錄下的.git文件夾即可繼續(xù)操作

6. pull時提示The authenticity of host 'github.com (xx.xx.xx.xx)' can't be estabilished
因為默認是用HTTPS連接遠程庫和本地庫鳖昌,但git的連接方式有兩種备畦,還可以用ssh連接,我就手欠的試了一下ssh連接方式

右上角切換連接方式(Use HTTPS)

就會出現(xiàn)以下錯誤

The authenticity of host 'github.com (52.xx.xxx.119)' can't be established.RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
Are you sure you want to continue connecting (yes/no)? //yes
Host key verification failed.
fatal: Could not read from remote repository.
Please make sure you have the correct access rights and the repository exists.

解決方案:需要進行g(shù)it ssh 配置遗遵,登錄github萍恕,進入要pull的項目中的setting逸嘀,點擊Deploy keys车要,將本地的ssh 公鑰添加進去,即可崭倘。
現(xiàn)在知道這是干嘛的了翼岁,so类垫,以后還是老老實實用HTTPS吧。

n+1 一些注意

1. commit message 規(guī)范
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末琅坡,一起剝皮案震驚了整個濱河市悉患,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌榆俺,老刑警劉巖售躁,帶你破解...
    沈念sama閱讀 212,294評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異茴晋,居然都是意外死亡陪捷,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,493評論 3 385
  • 文/潘曉璐 我一進店門诺擅,熙熙樓的掌柜王于貴愁眉苦臉地迎上來市袖,“玉大人,你說我怎么就攤上這事烁涌〔缘” “怎么了?”我有些...
    開封第一講書人閱讀 157,790評論 0 348
  • 文/不壞的土叔 我叫張陵撮执,是天一觀的道長微峰。 經(jīng)常有香客問我,道長抒钱,這世上最難降的妖魔是什么县忌? 我笑而不...
    開封第一講書人閱讀 56,595評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮继效,結(jié)果婚禮上症杏,老公的妹妹穿的比我還像新娘。我一直安慰自己瑞信,他們只是感情好厉颤,可當我...
    茶點故事閱讀 65,718評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著凡简,像睡著了一般逼友。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上秤涩,一...
    開封第一講書人閱讀 49,906評論 1 290
  • 那天帜乞,我揣著相機與錄音,去河邊找鬼筐眷。 笑死黎烈,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播照棋,決...
    沈念sama閱讀 39,053評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼资溃,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了烈炭?” 一聲冷哼從身側(cè)響起溶锭,我...
    開封第一講書人閱讀 37,797評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎符隙,沒想到半個月后趴捅,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,250評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡霹疫,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,570評論 2 327
  • 正文 我和宋清朗相戀三年驻售,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片更米。...
    茶點故事閱讀 38,711評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡欺栗,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出征峦,到底是詐尸還是另有隱情迟几,我是刑警寧澤,帶...
    沈念sama閱讀 34,388評論 4 332
  • 正文 年R本政府宣布栏笆,位于F島的核電站类腮,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏蛉加。R本人自食惡果不足惜蚜枢,卻給世界環(huán)境...
    茶點故事閱讀 40,018評論 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望针饥。 院中可真熱鬧厂抽,春花似錦、人聲如沸丁眼。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,796評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽苞七。三九已至藐守,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間蹂风,已是汗流浹背卢厂。 一陣腳步聲響...
    開封第一講書人閱讀 32,023評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留惠啄,地道東北人慎恒。 一個月前我還...
    沈念sama閱讀 46,461評論 2 360
  • 正文 我出身青樓任内,卻偏偏與公主長得像,于是被迫代替她去往敵國和親巧号。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,595評論 2 350

推薦閱讀更多精彩內(nèi)容