Git

Posted 酒皇

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Git相关的知识,希望对你有一定的参考价值。

Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。

GIT不仅仅是个版本控制系统,它也是个内容管理系统(CMS),工作管理系统等。

如果你是一个具有使用SVN背景的人,你需要做一定的思想转换,来适应GIT提供的一些概念和特征。

Git 与 SVN 区别点:

  • 1、GIT是分布式的,SVN不是:这是GIT和其它非分布式的版本控制系统,例如SVN,CVS等,最核心的区别。

  • 2、GIT把内容按元数据方式存储,而SVN是按文件:所有的资源控制系统都是把文件的元信息隐藏在一个类似.svn,.cvs等的文件夹里。

  • 3、GIT分支和SVN的分支不同:分支在SVN中一点不特别,就是版本库中的另外的一个目录。

  • 4、GIT没有一个全局的版本号,而SVN有:目前为止这是跟SVN相比GIT缺少的最大的一个特征。

  • 5、GIT的内容完整性要优于SVN:GIT的内容存储使用的是SHA-1哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。

 

 

我用的是windows系统。安装包地址在这里:https://git-scm.com/download/win

 

配置

Git 提供了一个叫做 git config (git-bash.exe这个文件) 的工具,专门用来配置或读取相应的工作环境变量。

这些环境变量,决定了 Git 在各个环节的具体工作方式和行为。这些变量可以存放在以下三个不同的地方:

  • mingw64\\etc\\gitconfig 文件:系统中对所有用户都普遍适用的配置。若使用 git config 时用 --system 选项,读写的就是这个文件。
    $ git config --system

     

  • ~/.gitconfig 文件:用户目录下的配置文件只适用于该用户。若使用 git config 时用 --global 选项,读写的就是这个文件。$ git config --global
    $ git config --global

     

  • 当前项目的 Git 目录中的配置文件(也就是工作目录中的 .git/config 文件):这里的配置仅仅针对当前项目有效。每一个级别的配置都会覆盖上层的相同配置,所以 .git/config 里的配置会覆盖 /etc/gitconfig 中的同名变量。

 

配置用户信息:

$ git config --global user.name "runoob"
$ git config --global user.email test@runoob.com

 

配置版本差异分析工具

$ git config --global merge.tool vimdiff

 

查看当前配置

$ git config --list

 

Git工作流程

 

基本上跟SVN差不多。

 

基本概念

使用git的话我们主要管理两个区:

工作区:工作目录

版本库:版本库内又有master 目录与暂存区

 

当执行 "git reset HEAD" 命令时,暂存区的目录树会被重写,被 master 分支指向的目录树所替换,但是工作区不受影响。

当执行 "git rm --cached <file>" 命令时,会直接从暂存区删除文件,工作区则不做出改变。

当执行 "git checkout ." 或者 "git checkout -- <file>" 命令时,会用暂存区全部或指定的文件替换工作区的文件。这个操作很危险,会清除工作区中未添加到暂存区的改动。

当执行 "git checkout HEAD ." 或者 "git checkout HEAD <file>" 命令时,会用 HEAD 指向的 master 分支中的全部或者部分文件替换暂存区和以及工作区中的文件。这个命令也是极具危险性的,因为不但会清除工作区中未提交的改动,也会清除暂存区中未提交的改动。

 

Git 创建仓库

执行

git init

会创建一个仓库在当前目录下

 

执行

git init newrepo

 

会在newrepo下创建仓库目录

如果当前目录下有几个文件想要纳入版本控制,需要先用 git add 命令告诉 Git 开始对这些文件进行跟踪,然后提交:

$ git add *.c
$ git add README
$ git commit -m \'初始化项目版本\'

 

我们使用 git clone 从现有 Git 仓库中拷贝项目(类似 svn checkout)。

git clone <repo>

 

如果我们需要克隆到指定的目录,可以使用以下命令格式:

git clone <repo> <directory>

 

 

接下来是eclipse下使用git的一些记录

提交项目到本地

右键项目→tream→shera project 会出现如下弹窗(今天不能上传图片不知道为啥)

然后选择use or create repository in parent folder of project 可创建仓库

或者create出一个新的路径作为你的仓库路径

然后像svn那样在team中选择synchronize Workspace 对比代码差异。初次建库一般没什么差异

右键 commit.这个时候会看到三个选框

点开有差异文件的选框。右键add to index打包为一个标签

然后填写commit信息

点击commit 则提交了代码

 

提交项目到网上

你在本地提交了项目之后可选择 

项目右键>>team>>remote>>push 

选择你在码云上创建的项目分配的路径

你的输入你的账户名密码下一步

第二个页面第一个下拉框选择master 

点击add Speace……

创建出update之后勾选 force update 点击finsh

 

拉项目需要在 eclipse上面选择window

show view  选择other

然后找到管理git仓库的Git repositories

然后控制框内第一个add……可以增加仓库进行管理,输入路径就可以选择该路径下的仓库

然后添加到仓库管理中去

跟svn不同的是,git拉项目需要右键 import Project

 

今晚不能截图不知道为啥。。将就着记录吧。

 

以上是关于Git的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段15——git命令操作一个完整流程

如何管理在每个 git 版本中添加私有代码片段?

使用 Git 来管理 Xcode 中的代码片段

markdown Git代码片段

GitGit 分支管理 ( 克隆远程分支 | 克隆 master 分支 git clone | 查看远程分支 git branch -a | 克隆远程分支 git checkout -b )(代码片段

GitGit 分支管理 ( 克隆远程分支 | 克隆 master 分支 git clone | 查看远程分支 git branch -a | 克隆远程分支 git checkout -b )(代码片段