版本控制器-Git

版本控制器:集中式、分布式

集中式:CVS/SVN等  缺点:必须联网,(代码必须推送到中央服务器)

分布式:Git等   不必联网,速度快,安全性很高,(每个人的电脑都有完整的版本库)

Git的使用

一:安装:

linux安装:

git   (查看是否安装)

Debian或Ubuntu Linux:sudo apt-get install git  (安装)

windows安装:

①官网下载

②输入用户名、邮箱

git config --global user.name '用户名'

git config --global user.email '邮箱'

--global:这台机器上所有的Git仓库都使用这个配置;也可对个别仓库指定用户名和邮箱

二:创建版本库(仓库)(目录)

①寻找一个合适的位置,创建空目录(如果是window,避免包含中文目录)

mkdir 目录 (创建一个目录)

cd 目录(进入目录)

pwd(查看当前位置)

②将空目录变成git可以管理的仓库

git init(初始化,本地文件夹同级会出现一个隐藏的.git文件夹用来跟踪管理版本库)

ls -ah(查看隐藏的版本库)

③将文件添加到版本库(文件必须放到创建的版本库的目录下)

git add 文件名1 文件名2(把文件添加到仓库)

git commit -m '注释'(把文件提交到仓库)

三:版本修改

修改文件后

git status(查看仓库当前的状态)

git diff 文件名(对该文件做了哪些修改)

git add 文件名(提交修改、添加到版本库)

git status(查看状态)

git commit -m '注释'(提交到版本库)

git status(查看状态会提示当前没有需要提交的修改,而且,工作目录是干净(working directory clean)的)

撤销修改

add前,仅撤销工作区修改(撤销修改就回到和版本库一模一样的状态):git checkout --文件名

add后commit前 撤销暂存区修改(撤销修改就回到添加到暂存区后的状态):(1)git reset HEAD 文件名(回退)(2)git checkout --文件名(撤销)

commit后推送到远程库前:版本回退(参考版本回退)

已推送到远程库:自求多福。。。

四:版本回退

git log(显示从最近到最远的提交日志)

git log --pretty=oneline(显示从最近到最远的提交日志,输出版本号(commit id),文件名,更清晰)

git reset --hard HEAD^(回退到上一个版本)

git reset --hard HEAD^^(回退到上上一个版本)

git reset --hard HEAD~100(回退到上100版本)

cat 文件名()

git log(现在版本库的状态)

git reset --hard 版本号id(指定版本号回退(可以不写全))

git reflong(查看命令历史)

五:工作区和暂存区

工作区:电脑中能看到的目录

暂存区:版本库中的stage(index),版本库自动创建的分支master,指向master的指针HEAD

git add (将文件添加到暂存区)

git commit(将文件从暂存区提交到当前分支)(文件必须先通过git add 添加到暂存区后通过git commit才能提交)

六:删除文件

git rm 文件名(删除)

git commit -m '注释'(提交)
误删:

git checkout --文件名(恢复,用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”

只能恢复文件到最新版本,你会丢失最近一次提交后你修改的内容

七:添加远程仓库(github)

在github上创建一个版本库

关联一个远程库:git remote add 库名 git @server-name:用户名/repo-name.git

推送:git push -u origin master (第一次推送master分支的所有内容)

(此后,每次本地提交后,只要有必要,就可以使用命令:git push origin master)

克隆版本库

git clone 地址(克隆改地址对应的版本库)

八:分支管理

(一)创建与合并分支

只有主分支:master

创建分之后:dev

在dev分支上操作完提交后:

合并分支:

删除dev分支:

git branch(查看分支)

git branch 分支名称(创建分支)

git checkout 分支名称(切换分支)

git checkout -b 分支名称(创建并切换分支)

git merge 分支名称(合并某分支至当前分支)

git branch -d 分支名称(删除某分支)

(二)分支冲突

在不同过的分支上均对同一文件进行修改

当Git无法自动合并分支时,就必须首先解决冲突。解决冲突后,再提交,合并完成。

第一次修改并提交(commit后),切换到另一分支再次修改并提交(commit后),会有冲突

git status (告诉我们冲突的文件)

修改冲突后再提交

git log --graph --pretty=oneline --abbrev-commit(可以看到分支的合并情况)

如:

删除分支:

git branch -d 分支名称

详情可咨询:https://www.liaoxuefeng.com/

猜你喜欢

转载自blog.csdn.net/sallycnn/article/details/79384953