git-版本控制工具

Git是什么

版本控制工具。至于git和其他版本控制项目有什么优势,网上有很多资料可以参考,此处不再赘述。

下载地址

https://git-scm.com/download.

git客户端安装

这里只截取了重要的步骤。双击下载的.exe文件即可运行。

1.鼠标快捷菜单

添加鼠标右键的快捷菜单

2.运行说明

git运行说明

3.换行符转换

换行符转换

常用git命令

版本库

git分本地仓库,远程仓库,和镜像仓库。在本地又存在工作区和缓存区。
> 使用git add把文件从工作区上传到到缓存区,
> 使用git commit把文件从缓存区上传到本地仓库,
> 使用git push把文件从本地仓库上传到远程仓库。这里先有个概念。

初始化本地仓库

git init

执行完成后在当前文件夹下回出现.git的隐藏文件夹。.git文件夹下的内容不能随便修改。
git init

设置签名

设置签名是为了区分不同开发人员的身份。

形式:

	用户名:***
	Email地址:***@***.com

命令:

	项目级别/仓库级别:尽在当前本地库范围有效
		git config user.name 用户名
		git config user.email ***@***.com
		信息保存位置:./git/config
	系统用户级别:登录当前操作系统的用户范围
		git config –-global user.name 用户名
		git config –-global user.email ***@***.com
		信息保存位置:当前系统家目录/.gitconfig
	优先级:就近原则,项目级别优先级高于系统用户级别
	原则:二者存其一,不能全部没有。

查看状态

git status 查看状态。

git status 查看状态

vim good.txt
git status

查看状态

添加到缓存区

git add
git add good
good文件添加到暂存区。

添加文件到缓存区

执行执行git add后,再查看状态如下

完成add,缓存区状态

从缓存区移除

git rm --cached
   git rm –cached good
   good文件从暂存区移除。

移除

git status 查看执行后状态

移除后状态

从暂存区提交到本地仓库

git commit 从缓存区提交到本地仓库

提交本地仓库

添加提交备注,直接使用vi编辑器编辑后保存。

添加备注

再次查看状态。

查看提交后状态

修改good文件后查看状态。

修改文件后查看状态

添加备注提交

	git commit –m "注备"
	git commit –m “my second commit” good 带注备的提交good文件

带备注提交

上次提交补充

git commit --amend
	补充上次提交。
	先查看当前暂存区状态,是clean状态,修改apple.txt并提交。

补充提交
查看状态

查看当前提交日志。

查看日志

此时如果发现apple.txt文件漏提交内容,修改内容并使用amend方式提交。

补充提交
查看日志

查看提交日志

git log 查看提交日志

在这里插入图片描述

git log --pretty = oneline

提交日志

git log --oneline。只能显示当前和当前之前的版本,无法显示当前版本之后的版本。

版本显示

git reflog

版本日志

版本回退/前进

git reset
	git reset --hard [索引值]。表示前进或后退到某个版本。
	git reflog

版本控制

git reset --hard c8a8029 

版本回退到c8a8029

Vi good

修改文件

git reset --hard ab2589f

版本回退到ab2589f

git reset –hard HEAD^
从当前版本往后后退一个版本。^可并列使用,多少个^符号表示回退多少个版本。

版本控制

git reset –hard HEAD~n。表示向后回退n个版本,n为数字。

版本控制
查看版本日志

reset命令的三个参数比较:

soft
仅仅在本地库移动HEAD指针。
说明:如下图所示,执行rest –soft命令后,good文件在缓存区以及本地区还保持上一个版本的状态,但是本地库的指针已经变动,所以查看status时,good的状态为修改并暂存。

在这里插入图片描述

mixed
在本地库移动HEAD指针
重置缓存区
说明:如下图所示,执行rest --mixed命令后,good文件在本地区还保持不变,但是本地库的指针已经变动,并且暂存区也被重置,所以查看status时,good的状态为修改但没有暂存,是红色的modified。

在这里插入图片描述

hard
在本地库移动HEAD指针
重置缓存区
重置工作区

命令帮助

git help 查看命令帮助
git help config   打开浏览器查看config命令帮助
git add –h	中断查看add命令帮助

删除文件找回

Vi aaa.txt
Git add aaa.txt
Git commit –m “new aaa.txt” aaa.txt
Rm aaa.txt
Git status

删除文件

git add aaa.txt
git commit –m “delete aaa.txt” aaa.txt
git status

查看文件删除后状态

Git reflog
Git reset --hard a5d164e

查看文件提交版本,回退版本

也可以用git reset –hard HEAD方式找回。

比较

git diff

提交apple.txt
apple文件

git add apple.txt
git commit –m “commit apple.txt” apple.txt
修改apple.txt

修改apply文件

比较本地和暂存区

比较

把apple.txt提交到暂存区后再进行比较。
Git add apple.txt
Git diff apple.txt

比较

比较本地某个版本:

Git diff HEAD apple.txt

比较

比较本地某个版本:Git diff ab2589f apple.txt

比较

比较所有文件

Git diff [version]
Diff后面无文件名,默认比较所有文件

比较

分支

查看分支

git branch –v

查看分支

创建分支

Git branch hot_fix 
创建名称叫hot_fix的分支。

创建名称叫hot_fix的分支

再次查看分支情况

查看分支

切换分支

Git checkout hot_fix

切换分支

在hot_fix分支修改apple.txt并提交,查看分支情况。
当hot_fix刚刚创建的时候,两个分支的当前版本是一致的,见上图。 

分支版本

切换分支
切换到接受修改的分支(被合并的分支)
执行merge:如 git merge hot_fix

切换分支

Merge遇到冲突
在两个分支修改apple.txt的同一行并提交。

冲突提交
冲突解决
merge

Vi apple.txt

修改

保留master分支上的修改。

保留master分支上的修改

查看此时状态。

查看状态

把apple.txt加入到缓存区,再查看状态。

添加缓存
查看状态

使用git commit提交,注意这里的commit后面不能带文件名。

提交

远程库地址别名

git remote –v

别名

git remote add origin https://github.com/jolan80l/huashan.git

远程分支

	git remote –v

查看别名

push

git push origin master

提交
git登录
ssh
提交

远程库下载到本地

git clone
git clone  https://github.com/jolan80l/huashan.git
完整的把远程库下载到本地
创建origin远程地址别名
初始化本地库

邀请成员加入团队github

新增成员
添加成员

复制邀请的连接给相应的成员,成员打开连接。点击接受邀请即可。这里没有多个账号,不模拟截图了。

Pull

	pull=fetch+merge
这里只有一个账号,无法模拟团队合作的情况,在此说明学习时候的例子。
账号A:yuebuqun
账号B:linghuchong
A创建huashanjianfa.txt,输入“华山剑法天下第一!”。
B拉取了huashanjianfa.txt文件,在里面添加了一行“我会独孤九剑!”。
A账户执行fetch操作,查看huashanjianfa.txt文件,并没有变化。
	Git fetch origin master
A切换分支到远程master,再查看文件,可以看到如下内容。
	git checkout origin master
	vi huashajianfa.txt
	文件内容:华山剑法天下第一!我会独孤九剑!
A切换回本地master分支,分别执行以下操作。
	git checkout master
	vi huashajianfa.txt
	文件内容:华山剑法天下第一!
	git merge origin/master
	vi huashajianfa.txt
	文件内容:华山剑法天下第一!我会独孤九剑!

解决冲突

要点
如果不是基于github远程库最新版所做的修改,不能推送,必须先拉去。
拉去下来后如果进入冲突状态,则按照“分支冲突解决”操作即可。
类比
老王和老王媳妇相当于两个账户。
债权人:老王
债务人:小刘——相当于github
老王说:10天后归还。小刘接受,双发达成一致。
老王媳妇说:5天后归还。小刘不能接受。老王媳妇需要找到老王确认后再执行。

跨团队协作

Fork
复制地址,发送给远程团队。

地址

远程团队使用其github账号登陆,浏览器输入接受的地址。
点击fork

成员分支

	东方不败的本地操作:
	Git clone xxx
	Cd huashan
	Vi huashanjianfa.txt,增加一行“这是葵花宝典”,保存并退出
	Git add huashanjianfa.txt
	Git commit –m “葵花宝典修炼法门” huashanjianfa.txt
	Git push origin master

Pull request
pull

岳不群的操作:
使用github账号登陆,点击pull requests

pull

岳不群可以输入提问在最下面的对话框,点击comment即可。另一方面东方不败也可以使用同样的方式回复。实现了对话的效果。
在pull requests的标签页下面,有commits和files changed两个选项卡,前者可以查看提交的文件,后者可以查看文件变化。
点击merge pull request即可合并代码。
本地使用pull拉取最新变更,可查看huashanjianfa.txt的变化,即东方不败的提交。

SSH免密登录

cd 家目录
ssh-keygen –t rsa –C 邮箱,  一路回车
cd .ssh
复制id_rsa.pub到github上
新建别名:git remote add origin_ssh github的ssh地址
git push origin_ssh master

在线学习

https://git-scm.com/book/zh/v2
git
转中文
参考盆友的~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值