1.git简介
Git是目前最先进的分布式版本控制系统
版本控制系统:能够记录每次文件的改动
2.安装git
终端下输入:
代码块
brew install git
检查git是否安装成功,输入
代码块
git
出现以下界面,则表明安装成功
3.创建版本库
安装成功之后下来就是创建版本库:
初始化一个仓库:
1)在合适的地方创建一个空目录
2)切换到当前目录下
3)初始化仓库
代码块
mkdir learngit
cd learngit
git init
在仓库下创建新文件:
1)创建空文件夹
2)向文件夹中写入内容
代码块
touch readme.txt
echo "readme">readme.txt
将文件放入Git仓库中:
1)将文件提交到暂存区
2)将文件提交到仓库
代码块
git add readme.txt
git commit -m "commit file"
4.常用命令
1)查看日志: 如果觉得输出太多,可以加上 --pretty=oneline
代码块
git log
2)回退版本:git reset --hard xxx
代码块
git reset --hard HEAD^ //回退到上一个版本
git reset --hard xxx //xxx指commit id,输入git log进行查找
//如果是回退到某个版本,关掉了电脑,但是之后又后悔了,想要回到新的某个版本
//使用 git reflog,reflog用来记录你的每一次操作
git reflog
//然后查看commit id,再使用回退语句进行回退
3)版本库
工作区中有一个版本库,是.git
git版本库中主要存的有stage暂存区和为我们自动创建的第一个master分支
git add 实际上就是将文件添加到了暂存区
git commit 是将所有暂存区的文件提交到了仓库
4)git diff HEAD -- readme.txt 查看工作区和版本库里面最新版本的区别
5)git checkout -- readme.txt 撤销修改,将readme.txt在工作区的修改全部撤销
6)git reset HEAD readme.txt 撤销在暂存区的修改,再使用5)的命令撤销掉工作区的修改
7)rm readme.txt 删除本地文件
8)git rm readme.txt 删除仓库中的文件
5)远程仓库
添加远程库:
1)添加远程仓库
2)将当前的分支添加到远程仓库
代码块
git remote add origin https://github.com/xueery/learn.git
git push -u origin master
此后每次修改master分支后,就可以将最新的修改push到远程仓库中
克隆远程仓库:
代码块
git clone https://github.com/xueery/learn.git
克隆完成之后就可以在本地进行查看了
6)分支管理
创建与合并分支
1)创建并合并到新的dev分支 :git switch -c dev
2)切换到已有分支:git switch master
3)合并某分支dev到当前分支:git merge dev
4)删除某分支dev:git branch -d dev
5)查看当前处于哪一分支:git branch
解决冲突
当在两个分支中都修改了某个文件,之后需要合并,则会产生冲突,冲突需要手动来解决,自行进行修改之后再提交
使用git status可以查看是哪一个文件产生了冲突
分支管理策略
在合并分支时,git有可能会使用 Fast Forward 模式,但这种模式下不会用合并记录,因此在需要有合并记录的情况下,需要禁用该模式,其中 --no-ff 表示禁用快速合并模式 -m表示将 commit 描述写进去
git merge --no-ff -m "merge with no-ff" dev
合并后,用 git log 查看分支历史
Bug分支
1)git stash:将当前的工作现场“保存”起来,以后可以恢复现场继续工作
2)git stash list:查看“保存”起来的工作
3)git stash pop:恢复工作,并且将stash中的内容删除
4)git stash apply:恢复工作,stash中的内容不会被删除,需要用 git stash drop 进行删除
5)git cherry-pick xxx:复制某个特定的提交到当前分支,xxx写入的是 commit id
Feature分支
丢弃一个还没有合并过的分支:git branch -D <name>
每次添加一个新功能,最好新建一个feature分支
多人协作
1)查看远程库的信息:git remote
2)推送分支:git push origin xxx
3)抓取分支:git pull
4)在本地创建和远程对应的分支:git checkout -b xxx origin.xxx
5)建立本地分支和远程分支的关系:git branch --set-upstream xxx origin/xxx
6)将本地未push的分叉提交历史整理成直线:git rebase
7)标签管理
创建标签
1)创建一个新标签(默认是创建为HEAD):git tag v1.0
2)在指定的commit上打标签(xxx为commit ID):git tag v0.9 xxx
3)指定标签信息:git tag -a v1.0 -m "xxx"
4)查看所有标签:git log
5)查看标签信息:git show v1.0
操作标签
1)删除标签:git tag -d v1.0
2)推送某个标签到远程:git push origin v1.0
3)一次性推送所有标签:git push origin --tags
4)删除本地标签:git tag -d v1.0
5)删除远程标签:git push origin :refs/tags/v1.0
来源:oschina
链接:https://my.oschina.net/u/4302631/blog/4283129