__Git学习

学习内容来源:

  1. 廖雪峰Git学习教程
  2. 码云学习小应用

廖雪峰Git教程

集中式和分布式

集中式:集中存放在中央服务器、必须联网

分布式:每个人电脑上都是完整的版本库,需要协同的时候可以自己去推送push给接收方,或者才能够发送端pull下来需要的代码。

安装Git

自行百度,这块我使用已经安装好Git的wsl-ubuntu进行学习

创建版本库

git init用来将当前目录变成git可以管理的目录。

git add添加文件,git commit提交文件

时光穿梭机

git status查看修改状态

git diff查看修改

版本回退

git log查看提交日志,退出可能需要按一下q

git log --pretty=oneline单行显示日志

HEAD表示当前版本,HEAD^表示上一个版本,HEAD^^表示上上一个版本,HEAD~100表示HEAD以上100个版本。

git reset可以回退到历史版本。git reset --hard HEAD^回到了上一个版本。git reset --hard commit_id回到指定id。

git reflog可以查看历史命令。

工作区和暂存区

工作区:就是当前git仓库所在的目录,除了.git版本库之外。

版本库:里面存了很多东西,

其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD

管理修改

Git管理的是修改,git add将修改提交到暂存区Stage里面,git commit将修改提交到当前分支上。

撤销修改

git checkout --filename可以丢弃工作区的修改!

没有--就会变成切换到另一分支!

git checkout 既可以,,也可以。

git reset HEAD <file>...可以清掉暂存区里面的文件。

==git reset命令==既可以回退版本, 也可以把暂存区的修改回退到工作区。 当我们用HEAD时, 表示最新的版本。

git reset既可以,,也可以。

删除文件

文件管理器删除文件之后

git rm可以从当前版本库里面删除文件,之前commit过的文件在被删除之后也能回退。。

git checkout --可以从版本库里面将被删掉的文件恢复。

远程仓库(杀手锏之一)

建了一个gitee账户,添加ssh公钥。OK

添加远程仓库

git remote add origin https://gitee.com/dluff/learngit.git
#上面将添加一个名为origin的远程仓库
git push -u origin master
#将本地库的素有内容推送到远程仓库上
#把本地库的内容推送到远程, 用git push命令, 实际上是把当前分支master推送到远程。
#由于远程库是空的, 我们第一次推送master分支时, 加上了-u参数, Git不但会把本地的master分支内容推送的远程新的master分支, 还会把本地的master分支和远程的master分支关联起来, 在以后的推送或者拉取时就可以简化命令。

git push origin master把本地master分支的最新修改推送到GitHub。

从远程仓库克隆

记住git clone就可以了。

分支管理

在合并之前,分支应该是别人看不到的。

创建于合并分支

git checkout -b dev创建并切换到dev分支。

等价于git branch dev+git checkout dev

git branch卡伊查看当前的分支状况。

git merge用来合并制定分之道当前分支。

git branch -d用来删除分支。

Git鼓励你使用分支完成某个任务, 合并后再删掉分支, 这和直接在master分支上工作效果是一样的, 但过程更安全。

解决冲突

当Git无法自动合并分支时, 就必须首先解决冲突。 解决冲突后, 再提交, 合并完成。

git log --graph可以看到分支合并图。

分支管理策略

首先, master分支应该是非常稳定的, 也就是仅用来发布新版本, 平时不能在上面干活;

那在哪干活呢? 干活都在dev分支上, 也就是说, dev分支是不稳定的, 到某个时候, 比如1.0版本发布时, 再把dev分支合并到master上, 在master分支发布1.0版本;

你和你的小伙伴们每个人都在dev分支上干活, 每个人都有自己的分支, 时不时地往dev分支上合并就可以了。

团队合作的分支看起来就像是这样:

image-20200315235526787

合并分支时, 加上--no-ff参数就可以用普通模式合并, 合并后的历史有分支, 能看出来曾经做过合并, 而fast forward合并就看不出来曾经做过合并。

Bug分支

猜你喜欢

转载自www.cnblogs.com/dluff/p/12501240.html
今日推荐