小白记录学习Git及部分问题的总结,主要的学习教程是廖雪峰老师的文档教程:
https://www.liaoxuefeng.com/wiki/896043488029600(需要可自行跳转)
文章目录
一、Git简介
安装和创建版本库
1.安装GIt和创建版本库
1.针对不同系统,安装过程请自己google。创建一个文件夹,并在cmd中进入该文件夹,执行以下命令
git init //执行之后对应文件夹会生出一个.git文件夹
//Initialized empty Git repository in /Users/michael/learngit/.git/
2.把文件添加到版本库
第一步,用命令git add告诉Git,把文件添加到仓库:
$ git add readme.txt
执行上面的命令,没有任何显示,这就对了,Unix的哲学是“没有消息就是好消息”,说明添加成功。(反复多次使用,添加多个文件)
第二步,用命令git commit告诉Git,把文件提交到仓库:
$ git commit -m "wrote a readme file"
二、时光机穿梭
修改了文件添加到仓库(还未提交仓库时)
运行git status命令看看修改结果:
$ git status
On branch master
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: readme.txt
no changes added to commit (use "git add" and/or "git commit -a")
如想查看具体修改内容,运行git diff 查看
git diff readme.txt //查看readme.txt文件具体修改内容
1.版本回退
(1)开始执行 git log 命令查看最近的提交日志
$ git log
commit 1094adb7b9b3807259d8cb349e7df1d4d6477073 (HEAD -> master)
Author: Michael Liao <askxuefeng@gmail.com>
Date: Fri May 18 21:06:15 2018 +0800
append GPL
commit e475afc93c209a690c39c13a46716e8fa000c366
Author: Michael Liao <askxuefeng@gmail.com>
Date: Fri May 18 21:03:36 2018 +0800
add distributed
commit eaadf4e385e865d25c48e7ca9c8395c3f7dfaef0
Author: Michael Liao <askxuefeng@gmail.com>
Date: Fri May 18 20:59:18 2018 +0800
wrote a readme file
(2)回退操作
$ git reset --hard HEAD^
HEAD is now at e475afc add distributed
Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,也就是最新的提交1094adb…(注意我的提交ID和你的肯定不一样),上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~1000
命令行显示more的解决办法:
git reset --hard HEAD~或者git reset --hard HEAD~1 ~后面的数字表示回退几次提交 不写的话默认是一次
三、远程仓库
1.在GitHub中添加ssh公钥
第1步:创建SSH Key。在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key:
ssh-keygen -t rsa -C "youremail@example.com"
你需要把邮件地址换成你自己的邮件地址;
可以在用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。
第2步:登陆GitHub,打开“Account settings”,“SSH Keys”页面:
然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容:
2.在GitHub上创建远程仓库
GitHub允许你添加多个Key。假定你有若干电脑,你一会儿在公司提交,一会儿在家里提交,只要把每台电脑的Key都添加到GitHub,就可以在每台电脑上往GitHub推送了。
3.本地仓库关联远程仓库
(1)在本地的learngit仓库下运行命令
git remote add origin git@github.com:faziji/learngit.git
请千万注意,把上面的michaelliao替换成你自己的GitHub账户名,否则,你在本地关联的就是我的远程库,关联没有问题,但是你以后推送是推不上去的,因为你的SSH Key公钥不在我的账户列表中。
4.本地库的所有内容推送到远程库
git push -u origin master
由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。
从现在起,只要本地作了提交,就可以通过命令:
git push origin master
5.从远程仓库克隆
git clone 地址
GitHub给出的地址不止一个,还可以用https://github.com/michaelliao/gitskills.git这样的地址。实际上,Git支持多种协议,默认的git://使用ssh,但也可以使用https等其他协议。
使用https除了速度慢以外,还有个最大的麻烦是每次推送都必须输入口令,但是在某些只开放http端口的公司内部就无法使用ssh协议而只能用https。
四、分支管理
1.创建并合并分支
(1)创建dev分支,然后切换到dev分支
git checkout -b dev
git checkout命令加上-b参数表示创建并切换,相当于以下两条命令:
git branch dev
git checkout dev
(2)查看当前分支并添加新信息到远程仓库
git branch
* dev
master
之后在dev分支,修改readme.txt文件之后,提交到远程仓库
git add readme.txt
git commit -m "branch test"
(3)切换到master,查看修改信息
git checkout master
此时查看git log并没有dev分支中的修改信息。
(4)合并master和dev分支
git merge dev
(5)删除dev分支,查看分支信息
git branch -d dev
git branch查看分支信息,结果只剩下matser
另外:
我们注意到切换分支使用git checkout ,而前面讲过的撤销修改则是git checkout – ,同一个命令,有两种作用,确实有点令人迷惑。
实际上,切换分支这个动作,用switch更科学。因此,最新版本的Git提供了新的git switch命令来切换分支:
创建并切换到新的dev分支,可以使用:
git switch -c dev
直接切换到已有的master分支,可以使用:
···
git switch master
···
使用新的git switch命令,比git checkout要更容易理解。
小结:
2.解决冲突
(1)准备新的feature1分支,继续我们的新分支开发
git switch -c feature1
修改readme.txt最后一行,改为:
Creating a new branch is quick AND simple.
在feature1分支上提交:
git add readme.txt
git commit -m "AND simple"
切换到master分支:
git switch master
在master分支上把readme.txt文件的最后一行改为
Creating a new branch is quick & simple.
提交:
git add readme.txt
git commit -m "& simple"
3.分支管理策略
总结
提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。
本地库
通过命令 git init 把这个目录变成git可以管理的仓库