git学习笔记

使用git的详细步骤

第一步:安装git

1、要想使用git,首先得安装git,要不然怎么用,对不对?嘻嘻。至于安装,百度一下即可。

2、安装完成后,windows系统下,在任何位置右键一下,若有git bash这个选项即代表安装成功了。

3、绑定用户:选择git bash后输入一下两个命令:

git config --global user.name “Your Name”
git config --global user.email "email@example.com"

第二步:练习小demo

1、建立本地仓库

​ 选择一个空文件夹作为本地仓库,我新建了一个learngit文件夹。右键这个本地仓库,点击git bash,会出现一个类似于命令行界面的东西。然后执行git init命令,结果如图:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qL6bhiV0-1581933378113)(C:\Users\MHW\AppData\Roaming\Typora\typora-user-images\1574436773881.png)]

此时,该文件夹下会出现一个.git的文件夹,这是个隐藏文件夹,如何查看隐藏文件夹,百度即可。

2、将资源提交到仓库。

​ 新建一个readme.txt文件作为待提交资源,内容随便,在此我将写入以下内容:

Git is a version control system.
Git is free software.

然后将readme.txt(资源)放入本地仓库(learngit)。然后,先将资源填加到仓库(git add learngit.txt),接着提交到仓库(git commit -m “write a readme file”)。-m 后面的内容自定义,一般当作简单的提交记录信息,当然也可以不写,不过最好写。至于不写提交记录信息的命令是什么,可以自己查哦。

结果截图:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-L9NqNlar-1581933378118)(C:\Users\MHW\AppData\Roaming\Typora\typora-user-images\1574437550710.png)]

3、资源发生修改

​ 此时资源发生修改,随便改,在此我将内容改为:

Git is a distributed version control system.
Git is free software.

此时,我们运行git status命令看一下结果:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lrdmJXWI-1581933378122)(C:\Users\MHW\AppData\Roaming\Typora\typora-user-images\1574437780864.png)]

​ 这里只告诉我们待提交资源readme.txt发生了修改,但还未提交新版本。不过不能看到具体内容改变了什么。不过呢,git diff readme.txt可以帮我们实现这个功能。结果如图:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Dybq3LJ6-1581933378123)(C:\Users\MHW\AppData\Roaming\Typora\typora-user-images\1574438085504.png)]

​ 既然修改过了,也提示我们该再次添加和提交资源,那么我们就重新添加和提交资源到仓库。结果如图:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6rU1ZXLw-1581933378129)(C:\Users\MHW\AppData\Roaming\Typora\typora-user-images\1574438242209.png)]

· 此时,我们用git status查看下当前仓库的状态:(正常情况下不用查看)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6J5QrB2k-1581933378132)(C:\Users\MHW\AppData\Roaming\Typora\typora-user-images\1574438324680.png)]

​ git status告诉我们,将要提交的修改包括readme.txt,下一步就可以放心地提交了:git commit -m "add distributed"

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hlBkQ9kh-1581933378134)(C:\Users\MHW\AppData\Roaming\Typora\typora-user-images\1574438510783.png)]

​ 此时,git status 则会告诉我们没有需要提交的修改了。工作目录是干净的。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0bAsYLMD-1581933378138)(C:\Users\MHW\AppData\Roaming\Typora\typora-user-images\1574438585927.png)]

4、版本回退

​ 既然是为了掌握版本回退,那么多修改几个版本是不是效果更明显呢?顺便练习下修改,一举两得,何乐不为。

修改文件内容:

Git is a distributed version control system.
Git is free software distributed under the GPL.

​ 重新添加和提交

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8SxqGtOr-1581933378140)(C:\Users\MHW\AppData\Roaming\Typora\typora-user-images\1574438985745.png)]

​ 那么,现在我们就已经有了三个本版,我么可以用git log来查看所有版本。如图:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xBxqF23p-1581933378142)(C:\Users\MHW\AppData\Roaming\Typora\typora-user-images\1574439078603.png)]

如果嫌输出内容过多,可以加一个参数**–pretty=oneline**,效果如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-F1KUbKv0-1581933378145)(C:\Users\MHW\AppData\Roaming\Typora\typora-user-images\1574439252825.png)]

​ 最前面那个则是版本号,是按照时间生成的的。至于如何生成的,大佬可以自行了解,菜鸡不配知道,我就是属于不知道的那一块。

​ 现在关键来了:版本回退到上个版本:

git reset --hard HEAD^

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-knPU1YP2-1581933378148)(C:\Users\MHW\AppData\Roaming\Typora\typora-user-images\1574439607796.png)]

​ 看,此时版本回到了add distributed这个版本,即上个版本。此时,再用git log查看下所有版本。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EcAbw1Y7-1581933378150)(C:\Users\MHW\AppData\Roaming\Typora\typora-user-images\1574439734867.png)]

​ append GPL那个版本消失了,不见了,回家找妈妈去了。当然还能返回到append GPL那个版本。丢了的东西,当然可以找回来,不过得有线索。这个线索嘛,当然就是版本号了,找到想要回到版本的版本号,用git reset --hard 版本号OK了。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bSwAywFj-1581933378152)(C:\Users\MHW\AppData\Roaming\Typora\typora-user-images\1574440031453.png)]

​ 看,用git log查看后,是不是有回来了呢,在此版本号不用全写,简写几位即可,但也不能过短,不然机器怎么分辨是哪个版本,它个白痴又不是我们肚子里的蛔虫。

hard参数讲解
仔细观察我们使用git log时,最新版本后会有个HEAD,这个HEAD就像指针一样指向最新版本,hard的作用就是改变HEAD指针的指向。

commit id防丢小知识:假如我们关闭了终端,找不到commit id了,我们就可以再次使用git reflog来查找,git reflog的功能就是记录每一次命令。

5、工作区和暂存区

工作区:比如目前的learngit文件夹。

版本库:就是工作区那个.git隐藏目录。

暂存区:版本库里的stage(或者叫index)。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EmRQzxGS-1581933378154)(C:\Users\MHW\AppData\Roaming\Typora\typora-user-images\1575202835127.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9xoKmCPM-1581933378155)(C:\Users\MHW\AppData\Roaming\Typora\typora-user-images\1575202864343.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7QWnGWoh-1581933378157)(C:\Users\MHW\AppData\Roaming\Typora\typora-user-images\1575202879848.png)]

注:此处知识,观看廖雪峰的git教程即可。

6、管理修改

git diff HEAD – readme.txt 命令可以查看工作区和版本库里面最新的区别。

7、撤销修改

​ 命令git checkout – readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况:

​ 一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;

​ 一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。

​ 总之,就是让这个文件回到最近一次git commitgit add时的状态。

7.1、当未add如暂存区时,只需要执行git checkout – 文件名就可以撤销修改。

7.2、当add入暂存区时,则需要先执行git reset HEAD 文件名先撤出暂存区,再执行git checkout – 文件名才可以撤销修改。

8、删除文件
  • 8.1、删除需要要删除的文件,使用文件管理器或者命令执行都可以。
  • 8.2、git status此时则会告诉你,工作区和版本库就不一致,并指出什么东西被删除了。
  • 8.3、继续执行删除或者撤销删除:
    • 8.3.1、继续执行删除:用git rm 文件名从版本库中删除改文件,并且提交git commit。
    • 8.3.2、撤销删除:因为版本库中还存在误删的文件,那么就可以使用git checkout – 文件名将版本库中的文件替换工作区的版本。无论工作区是修改还是删除,都可以“一键还原”。

​ 注:命令git rm用于删除一个文件。如果一个文件已经被提交到版本库,那么你永远不用担心误删,但是要小心,你只能恢复文件到最新版本,你会丢失最近一次提交后你修改的内容。

第三步:远程仓库

1、创建远程仓库
  • 1.1、Github可以免费获得一个远程仓库。

  • 1.2、绑定Key和Github,每一台电脑对应一个Key,可以多绑定。

    ​ 因为Git本地仓库和Github远程仓库之间的传输是通过SSH加密的,因此需要进行一些简单的配置:

    • 1.2.1、创建SSH Key。

      ssh-keygen -t rsa -C "youremail@example.com"
      使用上述命令即可,一路enter即可。想设置密码可以自行设置。
      一切顺利的话即可在用户主目录里找到.ssh目录,id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。
      
    • 1.2.2、绑定Github

      	登录Github,打开Account settings,然后点击SSH Keys页面,点击new SSH Key,天上任意Title,在Key文本框里粘贴id_rsa.pub文件里的内容。
      
    • 注:为什么GitHub需要SSH Key呢?因为GitHub需要识别出你推送的提交确实是你推送的,而不是别人冒充的,而Git支持SSH协议,所以,GitHub只要知道了你的公钥,就可以确认只有你自己才能推送。

2、添加远程仓库
  • 2.1、使用Github创建一个远程仓库。

    • 2.1.1、点击Create a new repo,输入一个远程仓库名,其他默认即可。

    • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dU1lCgNH-1581933378159)(C:\Users\MHW\AppData\Roaming\Typora\typora-user-images\1575207939036.png)]

    • git remote add origin https://github.com/mhwww/learngit.git
      

      执行上述代码,截图那个页面里有。

    • 添加后,远程库的名字就是origin,这是Git默认的叫法,也可以改成别的,但是origin这个名字一看就知道是远程库。

  • 2.2、把内容推送到远程仓库上

    • 2.2.1、执行命令git push -u origin master即可。

    • 把本地库的内容推送到远程,用git push命令,实际上是把当前分支master推送到远程。

      由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。

  • 2.3、再次推送内容

    • 推送成功后,可以立刻在GitHub页面中看到远程库的内容已经和本地一模一样:
    • 从现在起,只要本地作了提交,就可以通过命令:git push origin master把本地master分支的最新修改推送至GitHub,现在,你就拥有了真正的分布式版本库!
3、从远程仓库克隆

​ 点击Clone 或者Download 按钮,可以找到以下两个页面(点击ssh或者https就可以切换)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zbRBOy0g-1581933378160)(C:\Users\MHW\AppData\Roaming\Typora\typora-user-images\1575209381095.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IBwwoXLa-1581933378162)(C:\Users\MHW\AppData\Roaming\Typora\typora-user-images\1575209413436.png)]

​ 然后使用**git clone 【key】/【url】**即可克隆仓库,克隆成功后即可观察到远程仓库的内容。

	注:你也许还注意到,GitHub给出的地址不止一个,还可以用`https://github.com/michaelliao/gitskills.git`这样的地址。实际上,Git支持多种协议,默认的`git://`使用ssh,但也可以使用`https`等其他协议。

	使用`https`除了速度慢以外,还有个最大的麻烦是每次推送都必须输入口令,但是在某些只开放http端口的公司内部就无法使用`ssh`协议而只能用`https`。

第四步:分支管理

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值