学习Git

社会主义新天地 提交于 2020-08-19 20:37:08

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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!