工具使用

学习Git的使用

2018-10-04  本文已影响0人  名字谁不会取

一、Git是什么?

二、Git的安装?

1. 下载Git

Git官网连接

Git官网主页面 点击右下角Download完成下载
2. 下载完成后,打开安装包选好安装的目录,直接一直点击 next> (其他都是默认值),遇到Install直接进行安装。
3. 验证Git的安装正确,按下win键+r 打开cmd(运行窗口)输入下列指令:

git --version

三、Github账号注册--仓库创建

1. 进入Github官网,注册账号页面。
2. 注册成功页面。
3. 创建仓库

四、建立Git与Github的配置

五、Git大致工作流程

1. 在硬盘中创建一个文件夹(git 仓库),右键Git Bash Here,接下来创建的所有文件都将放入里面
2. 下一步点击下图的红标处复制地址
3. 右键打开(git 仓库)的Git Bash Here,粘贴地址,完成仓库的下载 这就是远程仓库东西的储存到Git中
4. 同样我们也可以在本地git 仓库中创建 c.txt 上传,先进入test文件夹中,然后由 工作目录 上传到 暂存区
5. 然后执行git commt上传到 本地仓库 ,进入添加c.txt的注释
6. 做完这些只是提交到了本地仓库,如果想要提交到Github上的仓库,我们要执行git push,出现
7. 之后让你输入你的Github用户名,然后弹出一个让你输入密码的对话框输入密码,完成上传到 远程仓库 然后你就在Github的仓库中看到你的上传和注释
总结图

六、Git文件状态

1.右键Git Bash Here,执行git init test,在git 仓库创建了test文件夹里面会有一个.git文件夹(如果没有点击此电脑功能区的查看,在文件的扩展名和隐藏的项目都打上对勾)
2.然后cd test进入文件test中,执行touch init创建init文件
3.根据第五部分的总结图我们知道git无非是 工作目录-暂存区-本地仓库-远程仓库 的储存、提取、编译。那麽他们的转换关系的执行步骤是什么呢?
git diff --cached 查看本地仓库与暂存区储存的区别
git diff                查看暂存区与工作目录储存的区别
git diff HEAD     查看本地仓库与工作目录储存的区别

七、深入Git的储存

1.同样在git 仓库创建test文件夹(步骤一样,同时显示.git文件),继续创建一个echo文件名称a.txt包含内容123

echo "123">a.txt

2. 上传到暂存区

git add a.txt

3. 通过命令取去查看暂存区存储的内容

git ls-files -s

git cat-file -p (hash值如图)

4. 下来进行暂存区内容创建文件夹提交到本地仓库

git commit -m'创建文件夹a.txt'

八、Git分支

1> Git分支

1. 如果我们想看当前test我们都有哪些提交?
2. 当前我们只有一个分支,那就是git帮我们创建的Master分支,通过执行ll .git/refs/heads/我们可以看到分支master
3. 创建新分支和运用

dev
master

总结小图 1 2
4.递交后分支的改变
总结图

2> stash命令

1. stash是把我们在工作区和暂存区做的修改,临时的放到一个地方,这个地方不是暂存区

3> 分支合并

1. 我们先转到master分支,执行git checkout master。执行git merge b将b分支合并到master上,这样我们前面所说master指向b分支,下来master就有了b分支上面所有的修改了。

因为b分支在master上做过修改所以,所以合并时可以看到fast-forward提交

2. 我们再将a分支也合并进去,用到的是三方合并。

指:

  1. 当前分支(提交)的内容
  2. 要合并的分支(提交)内容
    3.共同的一个祖先提交的内容

4> 分支合并之冲突解决

1. 执行git checkout master转到master上修改文件init存储并提交
2. 转到a上修改a的init文件同样提交
3. 转到master上合并这两个init
4. 我们可以用Git自带的默指工具,执行git mergetool会给你推荐工具(不方便)我们点回车,下来退出编辑页面,问你y/n 回答n。我们自己配置方便的工具
5. 在这里我们用到idea合并,下载并打开
6. 打开后,我们点击左下角version control 打开Git显示里面有一个unversioned files里面是Git不能管理的东西,所以我们要在.gitignore中写一些东西
7. ctrl+k开始提交commit massge进行添加说明(内容:添加gitignore),下来我们可以在左下角log看到commit的数形结构,右下角中 可以切换分支,现在我们就用master

九、认识rebase

1> rebase

1. 我们先依靠前面所学的知识,创建处在surcetree如图的分支结构
git init rbs              //创建rbs文件仓库
cd rbs                   //切换到rbs仓库下
touch c0               //在master上执行创建c0
git add .                //放入暂存区
git commit -m'c0'        //提交c0
touch c1
git add .
git commit -m'c1'
git branch dev     //创建新分支dev
touch c2
git add .
git commit -m'c2'
touch c3
git add .
git commit -m'c3'
git checkout dev   //切换到dev上执行
touch c4
git add .
git commit -m'c4'
touch c5
git add .
git commit -m'c5'
git logg               //我们之前命名的logg,以图表形式展示
2. 先切换到master分支上,rebase也就是变基操作,如 我们本来c4和c5是由c1为基础创建提交的,但我们经过rebase,将c4和c5接到c3后面,这就是变基操作
总结图
其中rebase是和merge做对比用的 采用idea默指方法进行提交 采用rebase方式进行提交

2> 交互式rebase

建议先看之后的内容reset命令再回过来看这片内容

所以用rebase经过第四部还会保留原来的c0 c1 c2 c3
1. 交互式rebase

p;pick=应用这个提交
r;reword=修改提交的说明
e;edit=可以修改提交,可以把提交拆分成好几个,在进行rebase
s;squash=合并提交,比如我们可以把d1和d2合并到d0再提交
f;fixup=在同条件与squash一样,但fixup会丢弃d1的说明,squash会保留
x;exec=执行一个命令用来测试编译或运行的成功
d;drop=可以去掉某个提交,比如把d0前面的pick改为d,则b0将不会rebase到m2后边

3> cherry-pick

十、远程分支

1> 远程分支

1.先打开Github创建一个新仓库git-test和加入一个README文件,克隆地址
2. 我们在Github中创建一个问件c0,提交备注为c0

2>跟踪分支

1. 跟踪分支是在本地分支和远程分支建立了一种关系,git pull就是完成远程更新和跟踪远程的master分支将它merge到本地master分支上,同样git push也是使用跟踪提交到远程仓库
2. 在GitHub中创建一个dev分支,执行git fetch更新到本地

十一、Git的reset命令和revert命令

1> reset命令

执行git reset chash --[.|filename]是重置我们的暂存区,吧commit内容覆盖过去
执行git reset --soft chash,更新commit的hash值,不会更新暂存区和工作区的
执行git reset --mixed chash,把commit覆盖到暂存区,但不会更改工作目录
执行git reset --hard chash,重置commit,重置暂存区和工作区

1. 我们创建一个rst仓库,创建一个c0文件,暂存然后提交,再创建一个c1文件,暂存。执行git ls-files -s来查看现在暂存区的内容 现在暂存区有c1和c0两个暂存文件
2. 下来我们再工作目录下将c1文件暂存并提交,执行git log --oneline --all --decorate --graph,来看提交树
3. 下来看下一个命令把commit的内容覆盖暂存区,但不会更改工作区的命令
4.下来说git reset --hard master^,你会发现状态是干净的,工作目录,暂存区,以及commit都保持一致

2> revert命令

1. 我们继续使用交互式rebase的文件环境,图1,切换到dev分支下,比如我们不想提交d2,执行git revert 3ef5
2. 下来我们回到最初,图1,执行把dev默指到master上

如果我们发现合过来的代码有问题

上一篇 下一篇

猜你喜欢

热点阅读