从零认识Git

Git 是什么?

Git 是目前世界上最先进的分布式版本控制系统(没有之一)。

特点:高端大气上档次。

安装 Git

Git 是一个版本控制系统,你也可以理解成是一个工具,跟 Java 类似,使用之前必须得先下载安装,所以第一步必须要安装,Mac 上其实系统自带 Git 的,Windows 一般情况下也是一直 next 就 OK 。

Git 基本操作命令

配置 Github 账户

1
2
3
git config —global user.name "benarchen"
git config —global user.email "[email protected]"
git config --list #查看 git 的配置信息。

基本命令

1
2
3
4
5
6
git status 		#查看仓库当前的状态。
git init #初始化一个 repository 。
git add #提交文件到 git 仓库中,其实是将文件变成了缓存状态。
git commit -m "第一次提交" #真正提交文件到 git 仓库(需要登录 Github 账户)。
git log #查看 git 的提交日志。
git diff #可以查看修改的内容。

版本回退

1
2
3
4
5
6
(git 最重要的功能)
git reset --hard HEAD^ #回退到上一版本
git reset --hard HEAD^ #回退到上上版本
git reset --hard HEAD~100 #回退到上 100 版本
git reset --hard HEAD 具体版本号 #回退到具体版本号
git checkout -- fileName #相当于撤销。总之,就是让 fileName 这个文件回到最后一次 git commit 或者 git add 时的状态

远程仓库

你拥有了一个 GitHub 账号之后,就可以自由的 clone 或者下载其他项目,也可以创建自己的
项目,但是你没法提交代码。仔细想想也知道,肯定不可能随意就能提交代码的,如果随意
可以提交代码,那么 GitHub 上的项目岂不乱了套了,所以提交代码之前一定是需要某种授权
的,而 GitHub 上一般都是基于 SSH 授权的。

配置 SSH 秘钥,生成ssh密钥文件:

1
2
3
ls ~/.ssh 			#用此命令查看自己系统中是否存在 ssh 公钥。
ssh-keygen -t rsa -C "你的GitHub注册邮箱" #生成密钥文件
rm -rf .ssh #删除当前目录的密钥

然后直接三个回车即可,默认不需要设置密码,然后找到生成的.ssh的文件夹中的 id_rsa.pub 密钥,将内容全部复制。打开 GitHub_Settings_keys 页面,新建 new SSH Key,Title为标题,任意填即可,将刚刚复制的 id_rsa.pub 内容粘贴进去,最后点击 Add SSH key。

在 Git Bash 中检测 GitHub 公钥设置是否成功,输入:

1
2
ssh -T [email protected]  进行测试,可能会说安全性什么的,选择 yes 继续就可以了。
注:成功以后可以在 github 上看到 ssh 的钥匙图标变成绿色。

说明:GIT 服务器上存储的是公钥,你本地存储的是私钥,当你 push 本地代码库到远程代码库,服务器会要求你出示私钥,并且用你出示的私钥和它的公钥配对来完成认证。由于使用的是不对称加密,所以公钥可以公开,只要保管好私钥就可以。

这一步其实是把本机和 github 账户关联了。

关联远程仓库:

1
2
大专栏  从零认识Git"line">3
4
git remote add origin 远程仓库地址	#关联 github 上的仓库
git remote rm origin #删除关联
git pull origin master --allow-unrelated-histories #第一次使用前需要拉取远程仓库
git push origin master #把本地代码推送到远程 master 分支。

注意:从零开发是先有远程库的,再有本地库。

1
git clone [email protected]:benarchen/first.git 	#把 Github 上的项目 clone 到本地。

分支管理

分支的作用是为了让团对协作开发,有了分支,每个开发人员都可以在项目库中拥有一个自己的开发进度线。等自己负责的部分开发完成后再同步到 master 分支上。Git 的分支是与众不同的,无论创建、切换和删除分支,Git 都能在非常短的时间内完成!

创建分支

1
2
3
4
git	branch    分支名		#创建分支
git checkout 分支名 #切换分支
git checkout -b 分支名 #创建并切换分支
git branch #显示所有分支,当前所处分支前会有 * 标记

推送至远程仓库

1
2
3
4
5
git push --set-upstream origin benar	#第一次从本地推送需要加说明,声明在远程创建一个分支并推送
git push origin #第一次之后不用声明,在分支上直接推送即可
git merge benar #把 benar 分支的内容合并到 master 分支上
git push origin #然后再把主分支推送至远程
git log --graph #查看分支合并图

删除分支

1
2
3
git branch -d 分支名		#删除分支
git push origin :分支名 #删除远程分支
git push origin --delete 分支名 #删除远程分支

下拉仓库

1
2
git pull origin master  	#把远程 master 代码下拉至本地。
git clone [email protected]:benarchen/sddc.git #克隆仓库到本地

分支使用策略

master 分支应该是非常稳定的,依旧是用来发布新版本,平时不能在上面干活。可以创建一个 dev 分支作为开发分支,即副 master 分支。每个开发人员还是拥有自己的分支,各自的工作完成后时不时的同步到 dev 分支上,最终发布到 master 分支上去。

标签管理

1
2
3
4
5
6
7
8
9
10
11
git tag  标签名			#打标签
git tag #查看所有标签
git tag 标签名 commitID #指定 commit id 打标签
git tag -a 标签名 -m "标签信息" #注释标签信息
git checkout 标签名 #切换到指定标签
git show 标签名 #查看文字说明
git tag -d 标签名 #删除标签
git push origin 标签名 #推送标签到远程
git push origin --tag #一次性推送全部尚未推送到远程的本地标签
git tag -d 标签名 #先删除本地标签
git push origin :refs/tag/标签名 #再删除已经推送到远程的标签

猜你喜欢

转载自www.cnblogs.com/sanxiandoupi/p/11711265.html