-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-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
选项,点开,可以看到一个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//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
详细区别和用法参考来源小志君的简书
在此处,尝试了两种连接方式 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 一些注意
1. commit message 规范