文章目录
- Git简介
- Git用法
- 上传到gitee上
Git简介
简单来说,Git就像一个日志一样,可以帮你记录你对文本文件的修改,但他的功能又强于日志,不仅可以记录,还可以帮你存储那些你对文本文件的修改,当你想要找回之前未修改的文件时,它可以帮你办到。
Git用法
该文章借鉴了廖雪峰的官方网站
-
创建一个版本库
mkdir learngit cd learngit git init
在learngit目录下创建一个文本文件,比如readme.txt,并写入一些内容
git add readme.txt git commit -m "对本次更改一些说明(写什么内容都可以,但最好写一些对本次修改有提示作用的内容)"
-
查看当前状态
可以帮助查看当前目录下的所有文本文件做了那些修改,比如新建文件,修改文件内容等
git status
-
查看文本文件做了哪些具体的修改
git diff <文本文件名>
-
版本回退
(1)查询当前所有历史记录
git log 或者 git log --pretty=oneline
(2)回退到上一个版本
git reset --hard HEAD^ 上上个版本就是:HEAD^^ 上100个版本:HEAD~100
(3)如果后悔了,想要回到最新版本
git reflog #用来记录你的每一次命令,用这个命令可以查询最新版本的SHA1值 git reset --hard <最新版本的SHA1值>
-
工作区和暂存区(stage)
-
Git管理的是修改,而不是文件
如果进行了以下操作:
第一次修改 -> git add -> 第二次修改 -> git commit
那么git commit只会提交第一次的修改,第二次的修改还没有被加入暂存区
-
撤销修改
(1)只是修改了文本文件,还没有git add:
git checkout -- <file>
(2)修改了文本文件,执行了git add,但还没有执行git commit:
git reset HEAD <file> git checkout -- <file>
(3)修改了文本文件,执行了git add,执行了git commit,但还没有推送到远程:
版本回退即可
(4)修改了文本文件,执行了git add,执行了git commit,把自己的本地版本库推送到远程:
不可撤销了
-
删除文件
git rm <file>
如果只是单纯的手动删除文本文件,没有执行git rm,则可以用以下命令来恢复:
git checkout -- <file>
上传到gitee上
- 本地文件夹无.git文件
git init
初始化,创建版本库git add .
添加所有文件到stage暂存区git commit -m "注释"
将stage暂存区的内容添加到master分支中,记得添加注释方便回退git remote add origin 仓库地址
连接远程仓库,origin为自定义的名称git pull --rebase origin master
同步仓库内容。如果远程仓库为空可以跳过这一步,如果远程仓库不为空,则必须进行这一步,否则会报错。git push -u origin master
上传到远程仓库
- 本地文件夹有.git文件
git add .
git commit -am "注释"
git pull --rebase origin master
同步仓库内容。如果远程仓库为空可以跳过这一步,如果远程仓库不为空,则必须进行这一步,否则会报错。git push origin master
- 版本回退
git log
或者git log --pretty=oneline
:查看所有的提交记录git reset --hard 版本id号(例如图中的bfa45...)
:回退到指定版本号。版本号不用输全,只要能区分即可git reflog
:查看所有的操作
- 分支管理
git branch
:查看分支git branch 新分支名称
:创建新分支git checkout 分支名称
:切换分支git checkout -b 新分支名称
:创建并切换分支git add .
:提交到该分支下的stage暂存区git commit -m 注释
:添加注释,并提交到该分支下git merge master
:合并到master分支下git checkout master
:切换到master分支下