-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下載直接下載就行了斗躏,中間正常安裝一般不會出什么錯,完成后昔脯,在任何一個文件夾點擊鼠標右鍵啄糙,或者在所有程序中,都能看到以下兩個選項:
(注:鼠標右鍵選項中沒有g(shù)it CMD)
0.3 一些配置
- 首先配置用戶名和郵箱
我就是安裝github
上的注冊信息配置的云稚,打開git cmd
隧饼,一般配置全局變量,使用
git config --global user.name "你的名字"
git config --global user.email "你的郵箱"
若后面忘了本地所配置的用戶名和郵箱信息静陈,也可以在git cmd
中查看和修改
git config user.name
git config user.email
- 將
git
(本地)和github
(遠程)鏈接起來
為了不用每次從本地push
到遠程時都輸入賬目密碼燕雁,在本地生成一個SSH密碼,包括公有和私有兩個秘鑰鲸拥,我們將公有秘鑰設(shè)置給github賬號拐格。同樣,在git cmd
中使用如下命令:
ssh-keygen -t rsa
然后會提示你輸入保存秘鑰的文件夾刑赶、密碼等一系列數(shù)據(jù)禁荒,我懶,就一直按回車角撞,默認就行了呛伴,默認的存儲目錄為C:\User\user\.ssh
勃痴,是一個隱藏文件夾,打開可以看到
看到那個明顯的.pub
文件了嘛热康,對沛申,就是它,公有秘鑰姐军,用文本編輯器打開即可铁材。然后在你的github--setting--SSH and GPG keys
中,將其添加進去就行啦奕锌。
1 將本地文件推送到Github(不同branch操作)
1.1 將本地庫與遠程庫建立連接
在github中著觉,進入你要推送到的repository中,在右上角有一個clone or download
選項惊暴,點開饼丘,可以看到一個https
的url
,這就是遠程庫的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 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ū)別和用法參考來源小志君的簡書
在此處,嘗試了兩種連接方式 HTTPS
和SSH
行楞,從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連接方式
就會出現(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吧。