Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或大或小的项目。
Git是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源代码的版本控制软件。
Git与常用的版本控制工具CVS、Subversion等不同,它采用了分布式版本库的方式,不用服务器端软件支持。
Git是目前世界上最先进的分布式版本控制系统,在处理各种项目时,都十分高效,而且非常的高大上。
集中式与分布式的区别
除了git还有svn、cvs这样的版本控制系统,它们的区别在于一个是分布式一个是集中式
区别在于集中式的版本控制系统每次在写代码时都需要从服务器中拉取一份下来,并且如果服务器丢失了,那么所有的就都丢失了,你本机客户端仅保存当前的版本信息,换句话说,集中式就是把代码放在一个服务器上集中管理,你的所有回滚等操作都需要服务器的支持。
分布式的区别在于,每个人的电脑都是服务器,当你从主仓库拉取一份代码下来后,你的电脑就是服务器,无需担心主仓库被删或者找不到的情况,你可以自由在本地回滚,提交,当你想把自己的代码提交到主仓库时,只需要合并推送到主仓库就可以了,同时你可以把自己的代码新建一份仓库分享给其它人。
像集中式它们都有一个主版本号,所有的版本迭代都以这个版本号为主,而分布式因为每个客户端都是服务器,git没有固定的版本号,但是有一个由哈希算法算出的id,用来回滚用的,同时也有一个master仓库,这个仓库是一切分支仓库的主仓库,我们可以推送提交到master并合并到主仓库上,主仓库的版本号会迭代一次,我们客户端上的git版本号无论迭代多少次,都跟master无关,只有合并时,master才会迭代一次。
在使用Git前我们需要先安装 Git。Git 目前支持 Linux/Unix、Solaris、Mac和 Windows 平台上运行。
本篇我们只介绍在Windows下安装Git,Git 各平台安装包下载地址为:http://git-scm.com/downloads
下载好,按默认安装即可(推荐安转在D盘中)。安装完成后,在开始菜单里找到“Git”->“Git Bash”,双击蹦出一个类似命令行窗口的东西,
输入git --version显示版本(也可以在cmdDOS窗口中测试),就说明Git安装成功!
完成后在命令行输入:
config:参数是用来配置git环境的
–global:长命令表示配置整个git环境
初次使用git需要设置你的用户名以及邮箱,这将作为当前机器git的标识,如果你用它来下载远程仓库一些需要登录权限的仓库会要求登录,git默认使用配置邮箱以及用户名登入,但会要求你手动输入密码
用户名配置
// user代表用户,.name代表配置用户的名称
git config --global user.name "你的用户名"
邮箱配置
user代表用户,.email代表配置用户的邮箱
git config --global user.email "你的邮箱"
查看配置信息:
要检查已有的配置信息,可以使用 git config --list 命令:
$ git config --list
也可以单独查看某项配置:
$ git config user.name
$ git config user.email
https://help.gitee.com/repository/ssh-key/generate-and-add-ssh-public-key
$ mkdir learngit #创建
$ cd learngit #切换
$ pwd #显示当前盘符路径 /d/gitspace/learngit
git init 版本库初始化
git add 添加至暂存区
git commit 提交
git status 显示本地仓库状态
git checkout 撤回
git reflog 查看历史记录
git reset --hard 版本穿梭
git push 推送至远程版本库
git clone 克隆版本库
git pull 拉回远程版本库的提交
git merge 分支合并
git rebase 分支变基
git log 显示提交日志
git rm 撤回添加
首先我们选择一个合适的位置,创建一个空目录
然后通过git init命令把这个目录变成Git可以管理的仓库:
git init
这个目录是Git用来跟踪管理版本仓库的,千万不要乱修改和删除这个目录中任意文件,否则这个git仓库就被你破坏了。
如果你看不到这个.git文件,使用命令ls -ah就可以看到隐藏的文件了。
把文件添加到版本库
版本控制系统可以记录你每次的改动
创建一个文件readme.txt
将文件提交到本地git版本仓库中
查看当前状态:
$ git status #查看当前git状态(新建了一个文件)
$ git add readme.txt #添加到暂存区
git rm --cached readme.txt
$ git commit -m "wrote a readme file" readme.txt
git commit -m "记录提交内容"命令,-m 后面写的是本次提交的记录内容,也可以不写。
然后再再次查看状态(没有可提交的文件)
查看历史记录,使用git log命令
git reset --hard 要回滚id
git reset --hard HEAD^
回到之前的版本 git reset --hard id
分支操作
git branch -v
* master cdc4028 first commit
git branch testing
git branch -v
* master cdc4028 first commit
testing cdc4028 first commit
git checkout testing
Switched to branch 'testing'
M a.txt
git branch -v
master cdc4028 first commit
* testing cdc4028 first commit
git merge com master # com是新建分支 master主分支
Updating 6ac5213..a8c3466
Fast-forward
hello.txt | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
$ git branch -D testing
Deleted branch testing (was cdc4028)
$ git branch -v
* master cdc4028 first commit