【饥人谷前端课程】Git
2018-05-06 本文已影响0人
秋羊
Git
为什么要使用Git?
关于版本控制
版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订的情况的系统。
- 本地版本控制系统
- 集中式版本控制系统(SVN)
- 分布式版本控制系统(Git)
Git的优势
- 速度
- 简单的设计
- 允许上千个并行分支
- 分布式
重要概念
git中文件的三个状态:
- 已提交(committed)
- 已修改(modified)修改了某个文件,但还没有提交
- 已暂存(staged)把已修改的文件放在下次提交是要保存的清单中
Git基本命令
起步
初次使用需要设置姓名和邮箱
git config --global user.name "你的姓名"
git config --global user.email johndoe@example.com
clone项目
用于把一个Github项目clone 到本地变为本地仓库
git clone git@github.com:jirengu/blog.git
cd blog
添加文件并提交
#创建文件
touch a.md
#在文件里写入一个字符串
echo "hello" > a.md
#查看状态
git status
#添加全部(放入暂存区)
git add .
#提交(m加备注)
git commit -am "add file"
#push(origin master分支)
git push
git push origin master
修改删除文件
#把远程仓库的变动更新合并到本地仓库
git pull
#修改文件
vim a.md
git add .
#这里需要注意,如果提交消息包含大量字符串,提交参数不用加 m
#此时会进入 vim 界面,按i进入编辑状态进行编辑
#编辑完成后按下esc进入命令态,输入:wq,保存退出vim
git commit -a
git push origin master
rm -rf a.md
git add .
#如果之前已经git push origin mater 过,后面可以直接简化成git push
git push
Git高级命令
本地创建一个git项目推送到远程空仓库
mkdir newProject
cd newProject
#把一个文件夹初始化成一个本地git仓库
#注意仓库和文件夹的区别在于仓库下有一个隐藏的.git文件夹,里面有一些信息
#对于一个仓库,删除.git文件夹,就变成一个普通的文件夹了
git init
touch index.html
echo "hello" > index.html
git add .
git commit -am "init"
#查看本地库里记录的远程库地址
git remote -v
#这里把远程的地址添加个标签叫origin
git remote add origin git@github.com:jirengu/blog2.git
#推送到远程库地址
git push origin master
#慎用,这样会强制推送,会覆盖别人的代码
git push -f origin master
#再添加一个远程库的标签
git remote add gitlab git@gitlab.com:abc/blog.git
#推送到gitlab标签的地址上
git push gitlab master
删除gitlab标签
git remote remove gitlab
#修改origin标签对应的地址
git remote set-url origin git@github.com:jirengu/blog3.git
#把gitlab标签改名为coding
git remote rename gitlab coding
分支操作
#创建本地库dev分支
git branch dev
#切换到dev分支
git checkout dev
touch b.md
git add .
git commit -am "add b.md"
#推送origin地址到dev分支上
git push origin dev
#把dev分支上的内容合并到当前(master)上
git checkout master
git merge dev
冲突
当自己和别人修改同一个文件的同一个地方,在执行
git pull
时更新本地合并是会出现冲突
- 修改冲突文件
- 重新提交