Git和Github
-1概述
git三種操作
從git讀取數據
改動代碼
將改動傳回git
兩個不同的repository
remote repository 遠程庫
local repository 本地庫
0 前期準備
0.1 GitHub賬號注冊
在GitHub官網上直接注冊賬號就行了,要分清name和ID,比如我的username = xiaozhou
,但是ID = 135****569
,另外,Windows下還可以下gitHub 桌面版,是一個操作GUI界面,作用和git命令是一樣的,很容易上手,也容易查看。
0.2 Git下載安裝
我是在Windows下使用的git,也可以在官方Git下載直接下載就行了,中間正常安裝一般不會出什么錯,完成后,在任何一個文件夾點擊鼠標右鍵,或者在所有程序中,都能看到以下兩個選項:
git選項
(注:鼠標右鍵選項中沒有git 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密碼,包括公有和私有兩個秘鑰,我們將公有秘鑰設置給github賬號。同樣,在git cmd
中使用如下命令:
ssh-****** -t rsa
然后會提示你輸入保存秘鑰的文件夾、密碼等一系列數據,我懶,就一直按回車,默認就行了,默認的存儲目錄為C:\User\user\.ssh
,是一個隱藏文件夾,打開可以看到
.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
注:在未進行連接的狀態下,進行push操作,會提示錯誤:'origin' does not appear to be a git repository
1.2 本地版本管理
在本地項目文件夾下(已于github遠程庫連接),開發過程中可以進行以下幾種操作:
git add **.py // 將文件加入暫存區,點.表示所有文件
git commit -m "titile" -m "description" //將暫存區的所有文件加入本地庫中
git reset HEAD^ //回退到上一個commited的版本
git reset --hard 7ba74fxx //按版本號,強制回退
注:在commit
時,可以不加參數,直接打開編輯器操作,默認是vim。
1.3 將本地分支推送到遠程庫
- 新分支操作
git branch //查看所有分支
git branch newbranch //新建分支
git checkout newbranch //切換到此分支
git branch -d newbranch //刪除分支
git branch -D newbranch //強制刪除分支
- 從下圖可以看出,在
commit
以后,本地默認創建了master分支,然后創建并切換到SRCC分支,從第三行到第四行的括號內容可以看到,branch已經由master轉為SRCC了,此時查看分支可以發現,指針在SRCC分支上(最后一行)
git分支操作
- 進行推送
$ git push origin HEAD -u
$ git push origin branchname
此時再github的分支上就可以看到了。
第一次推送到master分支上時,使用
-u
參數:
git push -u origin master
2 將遠程庫拉到本地進行操作(同一分支)
2.1 本地初始化
在本地新建一個用于操作的文件夾,對其進行git init
初始化,用于存放從遠程庫中pull
下來的文件。
2.2 建立連接
git remote add origin https:xxx//[email protected]
2.3 進行pull操作
git pull origin master:master
pull操作有幾種用法:
git pull origin <remote_branch>:<local_branch>
git pull origin <remote_branch>
git pull
詳細區別和用法參考來源小志君的簡書
在此處,嘗試了兩種連接方式 HTTPS
和SSH
,從HTTPS切換到SSH時,出了一點小問題,具體見最后一節問題匯總。
2.4 將更新push到遠程
git push origin master
在本地進行編輯和add、commit后,將最新的版本推送到遠程庫
n-1 一些解釋
1. origin/master是什么
origin
就是一個名字,當從本地clone
遠程庫時,git為你默認創建的、指向這個遠程庫的標簽,指向的是repository
,但是master
只是這個repository中默認創建的第一個branch
,當你push的時候,因為origin和master都是默認創建的,所有可以省略,但是最好別偷懶,因為換一個branch的時候就難搞了。
origin/master----遠程庫名/分支名
2. -u 到底是干嘛的
有人說,加了參數-u后,以后即可直接用git push 代替git push origin master;
但真正使用上面,第一次進行push的時候才加u,后面不加,暫時不懂
n 一些問題
1. add file時出現fatal: Not a git repository (or any of the parent directories): .git錯誤
原因是沒有進行git init
,導致沒有生成.git
隱藏文件夾。
2. 新建分支時,出現fatal: Not a valid object name: 'master'錯誤
原因是沒有提交一個對象,要先經過add``commit
等操作后才會真正建立master
分支,此時才可以建立其他分支。
由于遠程庫是空的,我們第一次推送master分支時,加上了-u參數,Git不但會把本地的master分支內容推送的遠程新的master分支,還會把本地的master分支和遠程的master分支關聯起來,在以后的推送或者拉取時就可以簡化命令。
$ git push origin branchname
在本地倉庫提交后推送到遠程倉庫
作者:Cloud_9527
鏈接:https://www.jianshu.com/p/0995b062396c
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯系作者獲得授權并注明出處。
3. 在將本地分支推送到遠程庫時,出現fatal: TaskCanceledException encountered
原因未知,執行下列語句可以解決:$ git config --global credential.helper manager
4. 在git commit 編輯title和description后,按Esc鍵后未推出編輯器
今天用git commit -m “注釋”提交的時候,注釋寫錯了。
首先 使用 git commit --amend 命令,(修改最近一次提交的注釋信息),會進入到vim 編輯器,然后 你會發現編輯器里你怎么輸入都沒反應,這是因為vim處在不可編輯狀態,按下字母鍵 c,此時進入編輯狀態,可以開始修改注釋信息了。
在然后 你會發現你怎么都退出不了,回到shell了,然后操作如下: ESC --》 退出編輯狀態;接著 連續按兩次大寫字母鍵 Z,接著你會驚喜的發現,終于保存好退出來了!
windows 系統 ,親測有效!!拿走不謝!
來源:月下小貍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文件夾即可繼續操作
6. pull時提示The authenticity of host 'github.com (xx.xx.xx.xx)' can't be estabilished
因為默認是用HTTPS連接遠程庫和本地庫,但git的連接方式有兩種,還可以用ssh連接,我就手欠的試了一下ssh連接方式
右上角切換連接方式(Use HTTPS)
就會出現以下錯誤
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.
解決方案:需要進行git ssh 配置,登錄github,進入要pull的項目中的setting,點擊Deploy keys
,將本地的ssh 公鑰添加進去,即可。
現在知道這是干嘛的了,so,以后還是老老實實用HTTPS吧。
n+1 一些注意
1. commit message 規范
智能推薦
mac git和github
基本手冊 https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/0013743858312764dca7ad6d0754f76aa562e3789478044000 https://git-scm.com/blog http://www.cnblogs.com/forget...
Github 和 Git
1. Github中創建倉庫 2. 配置 SSH Key 簡單方法就是用 Gui 的形式來創建,在help中選擇Show SSH key,點擊Generate Key(期間啥都不用填,只需要下一步)來生成key。 把生成的key填寫到Github中,在Settings的SSH and GPG keys那里填,title隨便寫,主要是用來注明的。 3. 創建本地倉庫 使用Git命令 git init...
git和github鏈接
git和github鏈接 檢查git安裝是否成功 檢查是否有ssh key 原來創建過。。。試著直接去github添加。。。 github添加ssh key settings–>ssh keys 打開生成的id_rsa.pub文件(cat id_rsa.pub),復制內容至key ? 完成! 驗證 配置個人信息 創建代碼庫 在github中新建一個倉庫 將倉庫克隆到本地 嘗試在該...
freemarker + ItextRender 根據模板生成PDF文件
1. 制作模板 2. 獲取模板,并將所獲取的數據加載生成html文件 2. 生成PDF文件 其中由兩個地方需要注意,都是關于獲取文件路徑的問題,由于項目部署的時候是打包成jar包形式,所以在開發過程中時直接安照傳統的獲取方法沒有一點文件,但是當打包后部署,總是出錯。于是參考網上文章,先將文件讀出來到項目的臨時目錄下,然后再按正常方式加載該臨時文件; 還有一個問題至今沒有解決,就是關于生成PDF文件...
猜你喜歡
電腦空間不夠了?教你一個小秒招快速清理 Docker 占用的磁盤空間!
Docker 很占用空間,每當我們運行容器、拉取鏡像、部署應用、構建自己的鏡像時,我們的磁盤空間會被大量占用。 如果你也被這個問題所困擾,咱們就一起看一下 Docker 是如何使用磁盤空間的,以及如何回收。 docker 占用的空間可以通過下面的命令查看: TYPE 列出了docker 使用磁盤的 4 種類型: Images:所有鏡像占用的空間,包括拉取下來的鏡像,和本地構建的。 Con...
requests實現全自動PPT模板
http://www.1ppt.com/moban/ 可以免費的下載PPT模板,當然如果要人工一個個下,還是挺麻煩的,我們可以利用requests輕松下載 訪問這個主頁,我們可以看到下面的樣式 點每一個PPT模板的圖片,我們可以進入到詳細的信息頁面,翻到下面,我們可以看到對應的下載地址 點擊這個下載的按鈕,我們便可以下載對應的PPT壓縮包 那我們就開始做吧 首先,查看網頁的源代碼,我們可以看到每一...
Linux C系統編程-線程互斥鎖(四)
互斥鎖 互斥鎖也是屬于線程之間處理同步互斥方式,有上鎖/解鎖兩種狀態。 互斥鎖函數接口 1)初始化互斥鎖 pthread_mutex_init() man 3 pthread_mutex_init (找不到的情況下首先 sudo apt-get install glibc-doc sudo apt-get install manpages-posix-dev) 動態初始化 int pthread_...
統計學習方法 - 樸素貝葉斯
引入問題:一機器在良好狀態生產合格產品幾率是 90%,在故障狀態生產合格產品幾率是 30%,機器良好的概率是 75%。若一日第一件產品是合格品,那么此日機器良好的概率是多少。 貝葉斯模型 生成模型與判別模型 判別模型,即要判斷這個東西到底是哪一類,也就是要求y,那就用給定的x去預測。 生成模型,是要生成一個模型,那就是誰根據什么生成了模型,誰就是類別y,根據的內容就是x 以上述例子,判斷一個生產出...