Git学习及总结

小白记录学习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可以管理的仓库

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值