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 一些配置

  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密码,包括公有和私有两个秘钥,我们将公有秘钥设置给github账号。同样,在git cmd中使用如下命令:
ssh-keygen -t rsa

然后会提示你输入保存秘钥的文件夹、密码等一系列数据,我懒,就一直按回车,默认就行了,默认的存储目录为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

注:在未进行连接的状态下,进行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//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

详细区别和用法参考来源小志君的简书
在此处,尝试了两种连接方式 HTTPSSSH,从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 规范
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,607评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,047评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,496评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,405评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,400评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,479评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,883评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,535评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,743评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,544评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,612评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,309评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,881评论 3 306
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,891评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,136评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,783评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,316评论 2 342

推荐阅读更多精彩内容