git学习篇

一.git是什么

  git是一个分布式版本控制工具,所谓版本指的是每次提交都会生成一条记录,这次记录就可以理解为版本,git可以进行版本记录查看,提交和回退等操作

二.git的两大特性

 2.1 版本控制是在本地

     git 的版本控制在本地,所做的提交,查看,回滚都是在本地进行操作,这样就可以避免在没有远端仓库,或是在没有网的情况下可以继续执行

2.2 git的分支管理

    git的一大强势在与他的分支管理。git创建分支,合并分支是比较方便的,当然,如果有冲突的话,也是需要解决的。那使用分支有什么好处呢,举个例子:我们在日常开发中,可能是需求原因,需要在一周后升级,但是自己手头上又在忙别的事,自己估算一周后并不能完成这个任务。这时候你就会很烦到底要不要去做这件事了。如果你使用git,你就可以创建一个分支,将任务时间长,一下子不能放入另外一个分支上去做,等到升级时可以用原来的分支去上线,这样互不影响,等两个都完成时,只需要合并分支即可

三.git的基本操作

 这里远端仓库使用码云,git工具使用最新的git客户端,这里不推荐使用git可视化工具(如果对git不知道的话,你根本不知道干了啥)

 3.1创建远端仓库

  

  3.2添加好后码云那边会有提示怎么进行操作,这里我就使用码云推荐给你的方式

  

 如果你设置本地用户名和邮箱,就不需要进行上一步操作

   3.2.1创建本地仓库并推送给远端

           首先进入文件目录,右键点击git bash here,然后执行 git init 

           

          然后我在这里添加一个文件,作为首次提交的文件

            

             add 是把文件加入暂存区,提交会把暂存区里的文件提交上去,commit是提交这次记录,如果是需要把所有改动的文件加入,可以执行 git add .

   3.2.1 将本机仓库和远端仓库关联

            按照码云的提示,执行

    git remote add origin https://gitee.com/xiongxin11/mytest1.git,这里不建议使用ssh协议的,因为你可能没设置ssh key,但是http协议都是可以使用的,

     添加好后,可以使用git push命令 ,输入完密码后将其推送给远端

    这里码云建议你创建readme.md和.gitignore文件,readme.md是一个文档,用于描述你的远端仓库,.gitignore用于你忽略不提交的文件。

3.2git的冲突解决

 当你本地和远端同时修改一个文件时,就会产生冲突。

 首先我修改远端仓库

然后我修改本地文件

首先,我们的第一反应是是先更新代码,然后解决冲突,但是,你会发现不行,

使用git pull后报错

             查看日志也是本地的提交记录,远端的并未更新。

          如果你仔细查看git 的打印信息,它已经告诉你很清楚了,大致意思是你的文件会被重写,请使用commit或是stash来处理。这里我使用commit的方式来处理,以后有时间讲述stash方式来处理

        首先提交到本地

           

       然后更新 git pull

          

        显示合并失败,需要修复冲突,然后提交他们

         打开文件会发现

         

        head代表你本地,>>>代表是远端的,手动解决冲突,然后提交

        

       查看日志你会发现本地提交了两条,远端提交了一条

        

       提交好后就可以推送给远端了 git push origin master

  3.3git的版本回退

       git的版本回退也是一大特色

      版本回退有两种操作 一个是reset,一个是revert

       reset的含义是重置到某个提交记录,当然当你使用reset时,改提交记录之后的会被丢失

       revert的含义是回到某个提交记录,但是是用一个新的提交来回到这个提交。

       3.3.1 git reset 操作(谨慎操作)

                执行 git reset --hard +版本号,回退到对应的版本,hard是本地的文件也会跟着回退到当时的记录,soft代表提交记录回退,本地的文件是不会回到之前的。

               git log查看日志后面的几条记录被移除

               

               回退后我想把本次提交推送到远端

               使用git push origin master 发现失败

                

               它提示你使用git pull来更新,但是现在不能这么做,因为git pull之后代码又回到之前的状态,之前的回退白做了,

                所以这里使用git push -f origin master来强制提交(谨慎使用)

               查看远端仓库就被回退了

                    

        3.3.2  git revert 操作

                  因为我这里记录很少,我先提交一次

                  

 

                   使用git revert +版本号进行回退

                    

                     

                     右边显示的状态为revrting.

                      查看文件,发现文件有冲突,

                  

                     使用git status查看状态

                         

                      然后他说要解决冲突,然后使用 git revert --continue继续,没办法我只好手动解决冲突。

                      解决好冲突后,我然后执行git add . 操作,

                       接着执行 git revert --continue 

                      

                     然后弹出这个页面

                       

                        我使用 shift +:然后输入去q!不保存退出

                        

                         查看提交记录,它自己自动带上了提交信息,至此,revert操作完成

                         

 

                总结: revert的方式想法挺好,但是实际操作时发现挺麻烦的,还有两个大问题。

                1.为什么我回退还需要解决冲突呢,如果是有很多文件时需要每个都解决吗

                2.回退时,发现有冲突的部分不是回到指定的,是回到指定提交的上一个提交内容

                 望大佬指教

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值