美文网首页
git学习总结

git学习总结

作者: 绝露 | 来源:发表于2017-02-19 18:12 被阅读0次

当我学习一个新东西的时候,习惯于把它看成一种解决方案.而在每一种解决方案的背后,都会存在一个或多个问题.而整个学习过程就是在寻找,明确这些问题.

为什么会有git

git本身作为一个解决方案,肯定存在与之相对应的问题.
学完之后发现git解决两个问题.

  • 做有些事情时候很少有人能够从头到尾一气呵成.需反复地修改才能完成.为了让修改工作更加高效,记录历史信息就非常有必要了.(在软件开发领域,把记录历史这一件事情叫做版本控制)
  • 如果两个人要合作做一件事情,那么在合作中会出现的一些问题git可以帮助他们解决.

解决方案的两种形式

目前的解决方案主要分为两种

集中式

其代表为svn

通过将修改的内容统一提交到远程服务器,由远程服务器来记录每一次提交历史信息.每一次提交就相当于创建一个恢复点.在未来的某个时刻,可以直接恢复到以前的某一个提交之后的状态.

svn通过分支功能来辅助参与者相互协作.在完成一个产品的时候给每一个参与者创建一个分支(类似于一个副本,当然这里不可能是一个完全的copy,只是一个指向主分支的一个指针).然后每一个参与者都是在自己的分支上完成相应工作,最终合并到主分支.以此来达成协作.

分布式

其代表为git

通过将修改的内容提交到本地服务器,由本地服务器来记录每一次修改的历史信息.好处在于不用联网就可以达到记录历史信息的目的.

git同样是通过分支功能来达成协作的.不同的是,因为是分布式的,所以每一个参与者都有一个完整的备份,安全性更高.而且git有一个非常大的优势,在于它有一个全球公用的服务器(github),可以实现全球范围内的协作.

如何使用git

几个新概念

Paste_Image.png
  1. Working Directory(工作区)
    就是一个工作目录,文件的修改内容最开始是保存在这里的,如上图.
  2. Repository(版本库)
    为.git文件夹
  3. Stage(暂存区)
    一个为了优化使用体验而设计的一个存储区域,位于.git文件夹内部.比如你有A-J总共10个要提交的文件,但是文件A,D,H为相关文件要一次性提交,如果等10个文件全部编辑完后直接提交的话操作起来比较麻烦.如果用stage的话,可以在完成每一个文件后将其add到stage中.之后,就可以一次性提交了.


    git_add.png
    git_commit.png
  4. 分支
    分支只是一个形象的描述.每当新建一个分支的时候实际上只是新建了一个指针.然后由这个指针跟踪的若干提交共同组成了一个分支.


    new_branch.png

git针对记录历史信息提供的解决方案有:

  1. 查看当前版本库的状态,提交修改
git status
--将修改提交到stage
git add file
--将修改从stage提交到版本库
git commit file
  1. 可以退回到之前的某一次提交.
git reset --hard  commit_id
  1. 用暂存区提供(新增,撤销,提交)每一次修改(包括增,删,改)的功能.
--将修改退回到stage,或者上一次提交的状态.
git checkout -- file
--将stage中的内容退回到上次提交时的状态.
git reset HEAD file
--删除版本库中的文件
git rm file
  1. 可以对比当前版本与之前版本的异同.
--各种异同对比,分支,文件,工作区和暂存区
git diff

git针对辅助协作提够的解决方案有:

  1. 创建,删除,合并(merge)新的分支.
--创建新分支
git branch branchName
--切换分支
git checkout  branchName
--分支合并
git merge branchName
--删除分支
git branch -d branchName
  1. 提供stash功能可以保存工作区中未提交时的内容.方便未来的某个时刻恢复工作区.

本地库和github交互:

--创建与远程分支关联的本地分支
git checkout -b branch-name origin/branch-name
--建立本地分支和远程分支的关联
git branch --set-upstream branch-name origin/branch-name;
--推送本地修改
git push origin branch-name
--同步远程修改
git pull
--clone远程分支
git clone git_address

以上的内容算是我使用git的一个知识框架.有很多的细节没有说明,但是只要有了这个框架,到时候填充细节的话就很容易了.

相关文章

  • 2018-04-18

    git学习小结 关于git init,git add,git commit 用法总结 1.首先配置git 全局配置...

  • Git常用命令总结

    我学习效率比较低,关于git差不多学习了两周,总结的常用命令如下: git add .&&git commit -...

  • 2018-10-12

    本周学习总结 Git Git 安装与配置 下载完git后,右键Git Bash here 的选项,点击后会弹出一个...

  • Git命令语法汇总

    本文是在学习廖雪峰Git教程后对常用Git命令的使用总结,仅供在使用Git时方便查找。 一、Git简介 Git是当...

  • Git学习总结

    git 相关 将另一个分支的某次提交所做的更改合并过来 git cherry-pick [commitID] 如果...

  • Git学习总结

    1.Linux安装: sudo apt - get intall git - core 输入密码即可完成安装 2....

  • git 学习总结

    http://rogerdudler.github.io/git-guide/index.zh.html

  • Git学习总结

    Part 1 Git基本介绍 版本控制基本功能 所有的版本控制系统,只能跟踪文本文件的改动,比如TXT文件,网页,...

  • git学习总结

    1. git是什么 git是分布式版本控制系统,可多人协助共同维护项目代码及项目管理 2. 安装 a) linux...

  • git学习总结

    Git for windows 本文只是自己的一些学习总结,方便自己查看,如果对您阅读不适,抱歉!!! 常用命令(...

网友评论

      本文标题:git学习总结

      本文链接:https://www.haomeiwen.com/subject/gljjwttx.html