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命令操作一个完整流程
GitGit 分支管理 ( 克隆远程分支 | 克隆 master 分支 git clone | 查看远程分支 git branch -a | 克隆远程分支 git checkout -b )(代码片段
GitGit 分支管理 ( 克隆远程分支 | 克隆 master 分支 git clone | 查看远程分支 git branch -a | 克隆远程分支 git checkout -b )(代码片段