(此文作为个人学习、回顾用,如有不足之处,请不吝指出。随理解深入,持续更新。)
svn与git的区别
svn是集中式版本控制系统。版本库在存放在中央服务器,必须联网才能工作。所以svn存在中央服务器dang机和断网导致开发停滞的风险。
git是分布是版本控制系统。每个电脑都是一个完整的版本库,工作不用联网。git解决了svn存在的问题。
git的基本使用
1.安装
搜索“git”,官网下载。
点击安装包
鼠标右键出现下图
![](https://img.haomeiwen.com/i13731268/5f139ac0d1dad0dc.png)
说明安装成功
点击Git bash here
![](https://img.haomeiwen.com/i13731268/b58d5c65c5fd3bef.png)
2.输入以下命令设置用户和邮箱
git config --global user.name "yourname" 设置用户名
git config --global user.email xxx@xx.com 设置邮箱
yourname:填自己git用户名字
xxx@xx.com:自己的邮箱
--global:全局,所有git仓库都用这个设置
ps:设置这个,才能知道谁提交了代码,做出了什么样的修改。
额外命令(可先忽略):
git config --list 查看git的设置信息
git config user.name 查看用户名字
git config user.passwork " " 设置用用户密码
3.创建一个版本库并提交文件
git的版本库(又名仓库),可以理解为git目录,这个目录里面的文件受到git的管理,在这个目录下的文件的操作,修改删除都会被记录,可以随时回到你想要的版本。
(1)创建仓库
在windows系统下,找一个文件夹右键“git bash here”,输入
git init
,把此文件设置为git仓库
![](https://img.haomeiwen.com/i13731268/33b43d8a4123d92a.png)
目录下出现隐藏文件夹
![](https://img.haomeiwen.com/i13731268/2e1afc51f3c4c1dc.png)
(2)文件提交
在此文件夹创建啊一个 a.md文件。
用命令git add a.md
将a.md文件提交到git的暂存区域
![](https://img.haomeiwen.com/i13731268/af1f20021b0c8b21.png)
用命令git commit -am "提交a.md"
将文件a.md提交到git的仓库
![](https://img.haomeiwen.com/i13731268/f011c1d19f8c7957.png)
提交完成
ps:
git commit -am "提交a.md"
中-a
:全部 m
:注释,备注,与"提交a.md"相关。
额外(可忽略):
git status
命令:当前文件的状态。
![](https://img.haomeiwen.com/i13731268/45b0aa37d15c96c7.png)
modified:文件已经修改
git diff
命令查看修改文件的内容:
![](https://img.haomeiwen.com/i13731268/75db4bd33eae05cd.png)
+11111是增加的内容
3.版本退回
git log
查看版本
![](https://img.haomeiwen.com/i13731268/b6534095ffdaf1c1.png)
提交日期有近到远
如果要跳回自己的版本该怎么做
git reset --hard head^
,退回上一个版本,如果要退回上2个版本git reset --hard head^^
,如果要退回N个版本,git reset --hard head~N
退回上一个版本
![](https://img.haomeiwen.com/i13731268/3208d3c6d2aaf881.png)
查看文件a.md,已经退回22222的版本
![](https://img.haomeiwen.com/i13731268/2a8f21214b6db3f5.png)
如果又退回33333的版本改如何做
使用命令git reflog
![](https://img.haomeiwen.com/i13731268/891c054c05ed27cb.png)
找到33333版本的cod5332 使用命令git reset --hard
![](https://img.haomeiwen.com/i13731268/539352160b45dd8a.png)
4.文件的撤销与删除
在文件a.md 文件新增加一行55555
![](https://img.haomeiwen.com/i13731268/f4b936b02d1ffb49.png)
使用命令git checkout -- a.md
把工作区的修改全部撤回
![](https://img.haomeiwen.com/i13731268/83750c8bbcf3f99f.png)
如果没有commit前,命令git checkout --
还可以找回文件,
删除文件 b.md,并用用命令恢复
![](https://img.haomeiwen.com/i13731268/e434fcec4b6b94da.png)
5.远程仓库
使用github作为git的远程仓库。
(1)首先将git和github用制作私钥和公钥链接。
注册github.
git bash输入ssh-keygen -t rsa -C "yourmail@xx.com"
ps:注意"C"要大写
输入cd ~
进入家目录,ls -a
找到文件夹.ssh
![](https://img.haomeiwen.com/i13731268/3be5db22b74e793a.png)
文件 id_rsa.pub存放公钥,打开文件复制里面内容。
打开github, 点击头像,Settings
![](https://img.haomeiwen.com/i13731268/8165b4566e7a402c.png)
点 SSH an GPG keys
![](https://img.haomeiwen.com/i13731268/0ae5b3047cf650b8.png)
右上角,New SSH key
![](https://img.haomeiwen.com/i13731268/9f55a73bd8685e2e.png)
把公钥内容复制进去,这样git与自己的github联系起来。
![](https://img.haomeiwen.com/i13731268/33f549bfdc0e27cf.png)
(2)在github创建一个空仓库,用git给它传送文件
按New
![](https://img.haomeiwen.com/i13731268/abde22dd28688e05.png)
Create repository
![](https://img.haomeiwen.com/i13731268/74c48ffe19091000.png)
把框里的地址复制下
![](https://img.haomeiwen.com/i13731268/740ff642ae6d9899.png)
git bash输入 git remote add origin git@github.com:joshua-okashi/look.git
这样git就与远程github建立起联系
![](https://img.haomeiwen.com/i13731268/056afdf60a11e54b.png)
输入git push -u origin master
,把本地仓库文件传送远程仓库
![](https://img.haomeiwen.com/i13731268/fe6630f9f799d6e2.png)
文件已经传入
![](https://img.haomeiwen.com/i13731268/c4b514b41b986b9d.png)
下次在传送文件只需要git push origin master
第一此加参数-u
(3)把github项目,用git克隆到本地。
在github建立一个含有README.md文件的仓库,创建记得打钩
![](https://img.haomeiwen.com/i13731268/b2e1b07aa32e9017.png)
把 地址复制。
![](https://img.haomeiwen.com/i13731268/7b1dac4755b96782.png)
输入命令git clone git@github.com:joshua-okashi/help.git
![](https://img.haomeiwen.com/i13731268/72c85a97b26bf338.png)
![](https://img.haomeiwen.com/i13731268/3906166d161b2948.png)
已经在里面了。
(4)创建与合并分支
创建分支并且git checkout -b dev
![](https://img.haomeiwen.com/i13731268/dbd825fb19df4439.png)
查看当前分支git branch
![](https://img.haomeiwen.com/i13731268/9be0446247766d90.png)
在dev分支上,修改b.md的内容
![](https://img.haomeiwen.com/i13731268/b47ee596f1c6a16c.png)
切换分支git checkout master
![](https://img.haomeiwen.com/i13731268/4f7dcddd7d04abde.png)
合并分支git merge dev
(要切到主分支)b.md内容合并了。
![](https://img.haomeiwen.com/i13731268/ae243874ca1eac71.png)
删掉分支git branch -d dev
![](https://img.haomeiwen.com/i13731268/b5ae064872f7f144.png)
注意点:关于冲突
如果出现以下情况
在分支"hoka"中把a.md添加了"hello world"
![](https://img.haomeiwen.com/i13731268/f314c0c95af89483.png)
切换回主分子master,同样在a.md同一行添加"你好!"合并分支
![](https://img.haomeiwen.com/i13731268/61a5e7e43e4ebd03.png)
发现冲突,查看文件。
![](https://img.haomeiwen.com/i13731268/0b772ea81b53182d.png)
用<<<< ====符号表示哪个分支做了什么,修改文档提交,就可以解决冲突。
关于分支合并使用命令git merge –no-ff -m
,-no-ff
即使合并分支,版本信息还在。
6推送到远程仓库相关命令
查看远方仓库信息git remote
查看远程仓库的详细信息 git remote –v
![](https://img.haomeiwen.com/i13731268/55e352e8726ca87b.png)
命令git remote add origin git@xxxxxx
添加你远程仓库的地址,origin是后面仓库地址的标签
![](https://img.haomeiwen.com/i13731268/87b78fc23aea0ba0.png)
git push origin master
把分支master推送到origin
![](https://img.haomeiwen.com/i13731268/0a5479fd50197956.png)
git remote remove dev
删除dev标签
![](https://img.haomeiwen.com/i13731268/f5ffac87ce8d9151.png)
git remote set-url origin 地址
重新设置标签地址
git remote rename gittab coding
把标签 gittab改为coding
网友评论