Git学习小结

今天翻了下git,这是之前学习git的记录
前段时间学习了廖雪峰老师的Git教程,今天再来温故下,加深下记忆!

创建文件夹、文件

mkdir gittest

touch gittest.txt

创建版本库

git init

编辑文本文件gittest.txt

Git is a version control system.
Git is free software.

把文件添加到版本库

git add gittest.txt

提交请求,-m表示提交的信息

git commit -m '第一次提交'

再次编辑gittest.txt

Git is a distributed version control system.
Git is free software distributed under the GPL.

再次提交到版本库,重复上面git add git commit指令

查看git 日志,看看之前提交了什么(有学到了一个新命令)

git log

返回的数据掩护缭乱,那就来个简洁的,只有简单的两行数据

git log --pretty=oneline

返回上一个版本(HEAD表示当前版本,HEAD^表示上一个版本)

git reset --hard HEAD^

再次返回上一个版本 后面那一串数字是版本号

git reset --hard 6f5a174c09469994c2dc59cf6db87ac7012d16c4

我们再来看一下日志最新的请求又出现了

查看命令历史

git reflog

git操作分两步
1、git add file 添加文件到版本库就是添加到暂存区
2、git commit 提交请求就是把暂存区的内容提交给master分支

查看工作区和暂存区版本的区别

git diff HEAD --gittest.txt

修改文件后,再添加到版本库之前(没有git add),想撤销掉这次操作

git checkout -- gittest.txt

这一次已经将文件添加到了暂存区(git add file),可以这样撤销操作

git reset HEAD gittest.txt

这样我们就从暂存区返回了工作区,再把工作区的操作撤回就行了

删除文件

删除文件之前新建一个test.txt,再添加到暂存区并提交到分支

git rm test.txt

git commit -m '删除test.txt'

如果是误删的话,返回上一个操作

git checkout test.txt

添加远程仓库

git remote add origin [email protected]:Family-TreeSY/git_test.git

将本地库的内容推送到远程

git push -u origin master

从远程库克隆
需要先在github上面创建一个仓库

git clone [email protected]:Family-TreeSY/B-2.git

分支管理

创建分支,这个之后HEADz指向dev,,-b表示创建并切换分支

git checkout -b dev

这条命令相当于下面两条

git branch dev 创建dev分支
git checkout dev 切换到dev分支

查看当前分支

git branch

把dev分支合并到master分支

git merge dev

删除分支

git branch -d dev

查看分支合并图

git log --graph --pretty=oneline --abbrev-commit

分支管理策略

git merge --no-ff -m "merge with no-ff" dev

--no-ff: 表示禁用Fast-forward,使用--no-ff 可以看到合并后的历史有分支
这次创建会提交一个commit 所以带有-m参数

BUG分支
把当前工作藏起来,等恢复现场后再来工作

git stash

创建bug分支修改bug流程

假如需要在master分支上修复bug,那就在master上创建分支
git checkout -b issue-101-------->修改gittest.txt-------->git add gittest.txt --------->git commit -m '修复bug'------------> 切换回master;git checkout master ------------->合并分支;git merge --no-ff -m "合并分支" issue-101---------->删除issue-101分支; git branch -d issue-101

git checkout -b issue-101

修复bug的工作结束了,我们现在重新回到dev分支工作,,查看刚刚的工作现场

git checkout dev

查看刚刚被隐藏的工作现场

git stash list

回到工作现场

git stash pop

feature分支

强行删除

git branch -D feature-vulcan

多人协作
查看远程库信息

git remote -v
推送分支
git push origin master

如果是推送dev分支

git push origin dev

多人协作模式
先推送自己的:git push origin ... ----------> 推送失败,远程库比本地新需要:git pull 合并------->

如果有冲突就解决冲突---------->没有冲突或解决冲突后: git push origin 分支

标签管理

首先切换到要打标签的分支

git checkout master

打标签

git tag v1.0

查看标签

git tag

默认标签是打在最新的commit上的,我们想在其他commit上打标签就需要查看ID号

git log --pretty=oneline --abbrev-commit

打在指定commit ID上面

git tag v0.9 1555a84

查看标签信息

git show v0.9

创建带有说明的标签,用-a指定标签名,-m指定说明文字

git tag -a v0.1 -m '指定标签练习' c839d68

删除标签

git tag -d v0.1

推送指定标签daoyuancheng

git push origin v0.9

推送所有标签到远程

git push origin --tags

标签已经推送到远程后再删除,先删除本地标签,再删除远程仓库标签

git tag -d v1.0

git push origin :refs/tags/v1.0

欢迎访问Treehl的博客

GitHub

你可能感兴趣的:(Git学习小结)