git简单操作到上手

许多写代码的同学最终终究会有代码管理这个部分,尤其在多设备,代码版本更新,以及多人开发的情况,git就自然而然接触到。当然平常的基于文件以及个人的管理,复杂度低,更新频率低,常用开发设备少的时候,是可以管理得过来的,而git的学习成本还是较高的,有许多命令,有许多教程,还有分支这个概念,搞不好还会因为操作不当导致不知道怎么回退。既然是工具,那就发挥工具的特性,本文希望对于一些主要的操作简单下来,形成一个套路,解决大部分的问题,让我们的精力真正放置于需要解决的问题上来。当然最后一句,其实这个东西我熟悉下来,最重要还是实践,在慢慢实践中,就知道其实没那么困难。

git参考资料

  • 说明
    • 网上还是有很多资料的,但是优质的资料很少(就是那种我看一篇即可,又学习曲线是平缓上升的),这里参考了一些很好的资料,然后作为一个集合他们的地方,对其评价一下,让后来者有个选择的参考。当然后续的一些总结的操作,也是参考他们的基础上编写的。
  • 资料

git主要使用情况

  • 本地仓库维护与远程仓库协作
    • 初始化
    $ git init #初始化仓库
    $ git config --global user.name "Your Name" #设置账户
    $ git config --global user.email "email@excample.com" #设置用户邮箱
    $ ssh-keygen -t rsa -C "youremail@example.com" #生成ssh key(用于github ssh认证)
    $ git remote add origin git@github.com:YourGithubAccount/YourRepository.git
    #在github申请完仓库后使用,等于链接上仓
    $ git remote -v #查询远程连接情况
    $ git remote remove origin #删除origin(这个估计指代本地仓库的名字)与对应的远程仓库的链接
    $ git push -u origin master #用git push命令,实际上是把当前分支master关联到远程
    #(我们第一次推送master分支时,加上了-u参数,
    #Git就会把本地的master分支内容推送的远程新的master分支)
    
    • 更新
      • 补充说明:一般分冲突与不冲突,冲突的话就人为干涉解决,即对应看修改文档两个分支的不一致,看留谁;不冲突,即不同部分存在加减不会影响,该部分基本上不是大变动都不会影响工作使用。
    $ git add {$file_name} #增加,把文件从工作区提交到暂存区
    $ git add . #把当前目录的情况从工作区提交到暂存区
    $ git commit -m "YourMessage" #提交,把文件从暂存区提交到存储区,增加与删除需要提交
    $ git clone git@github.com:xxxx/xxxxx.git#利用ssh下载东西(第一次需要)
    $ git pull #git fetch 与git merge的结合体,直接在远程仓库下拉取下来
    $ git fetch / git fetch origin branchNAME #全部拉取远程仓库/只拉取对应的分支,
    $ git checkout {$branch_name_ptr} #补充,应该在多分支中说明,切换分支时会自动更新工作区
    $ git merge {$branch_name_ptr}#拉取完还要合并,合并时会处理冲突与不冲突事宜完会更新工作区
    $ git push / git push origin {$branch_name_ptr} #当前分支推送远程仓库/推送指定的分支
    
    • 回退
    $ git reset --hard 	{$branch_node} #把版本库还原成对应节点(ID版本)
    $ git push -f {$branch_node} #强行把本地库更新至远程库上
    
  • 远程仓库与远程仓库维护(即多人协作)
    • 这里不太需要太多疑虑,只能说大家的设计都设计得太好了,只说一下我个人的理解:对于可能存在的风险解答一下,比较疑虑的两个问题就是(1)怕同一分支上,别人更新了bug,我怎么知道以及审核并入,(2)还有,同一分支有两条支线(即别人更新了,我继续更新怎么解决);
    • 这上面其实基于四个思想就能协助解决了:(1)是每次修改不是本人或维护者权限都需要开辟新分支然后申请并入,并入时由维护者审核;(2)同一部分的若发生冲突,则亦由维护者选择取舍,通过本地或网页端来审查;(3)借鉴分支的概念,针对不同用途,分支内容的层层提取(即个人->团队->正式分支->测试分支->发布分支),我们只关注此刻与下一步的关系即可,也能保证代码管理的安全性;(4)最后不行认准当前代码如何,不考虑历史关系,克隆下来进行重新创建仓库就好了,以及发生重大失误,则直接回退版本。(工具始终是工具,重要的是人怎么做,能达成目的即可)
  • 异常处理
    $ git checkout -- .  #当前所有文件更新成当前分支储存区的样子
    $ git reset . #当add之后,但没commit,需要清空暂存区时使用
    $ git log #查询日志,可以看节点ID
    $ git log --graph #会有树的样子看看仓库历史的样子
    $ git status #查询工作区、暂存区、存储区之间的不一致
    $ git branch -a #查询有什么分支
    $ git push orgin :<destination> #这个可以同时删除远程仓库与本地仓库的分支
    $ git clean -f #删除 untracked files
    $ git clean -d -f #删除目录也一起删掉
    

奇技淫巧

$ git log --pretty=oneline #查询修改日志(回到过去)
$ git switch dev #切换到dev分支
$ git rebase NAME#把分支添加到对应分支后面
$ git push origin <source>:<destination>
$ git fetch origin <source>:<destination> 
$ git revert #也是恢复但是便于提交
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值