Git版本控制工具使用教程
常规提交Git命令
首次提交
- 通过命令 git init 把这个目录变成git可以管理的仓库
git init
- 添加要提交的文件
git add README.md
//如果要提交文件夹下所有的文件
git add .
- 将文件放到暂存区
git commit -m "first commit"
- git remote add url 添加一个远程仓库
git remote add origin https://gitee.com/thirtyleo/minipdf.git
- push到远程仓库里
git push -u origin master
已有仓库
重复git add/git commit操作
然后
git remote add origin https://gitee.com/thirtyleo/minipdf.git
最后push
git push origin master
其他常用命令
- 比较本次与上次提交内容的差异
git diff test.txt
-
获取版本号
git reflog
-
版本回退的两种命令
//第一种 git reset --hard HEAD^ //第二种 git reset --hard 版本号
那么如果要回退到上上个版本只需把HEAD^ 改成 HEAD^^ 以此类推。那如果要回退到前100个版本的话,使用上面的方法肯定不方便,我们可以使用下面的简便命令操作:git reset --hard HEAD~100 即可;
这两个命令有什么差别呢?第一种命令只能一直往回退。而第二种是可以把已经回退的操作,再回退回去!
只需要使用git reflog来获取之前提交的(已经被撤回的)的版本号,就可以复原了。
-
撤销修改
在我未提交之前,我发现添加5555555555555内容有误,所以我得马上恢复以前的版本,现在我可以有如下几种方法可以做修改:
第一:如果我知道要删掉那些内容的话,直接手动更改去掉那些需要的文件,然后add添加到暂存区,最后commit掉。
第二:我可以按以前的方法直接恢复到上一个版本。使用 git reset --hard HEAD^
但是现在我不想使用上面的2种方法,我想直接想使用撤销命令该如何操作呢?
注意:命令git checkout – readme.txt 中的 – 很重要,如果没有 – 的话,那么命令变成创建分支了。
git checkout -- file //两边都要留有空格
创建与合并分支
创建分支
git checkout -b dev
git checkout 命令加上 –b 参数表示创建并切换,相当于如下2条命令
git branch dev
git checkout dev
这说明在一个分支不能查看另外分支的数据。
合并分支
git merge 分支名
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ofSgwcfT-1581697293352)(Git使用教程.assets/1581695570685.png)]
注意到上面的Fast-forward信息,Git告诉我们,这次合并是“快进模式”,也就是直接把master指向dev的当前提交,所以合并速度非常快。
删除分支
git branch -d 分支名
多人协作
当你从远程库克隆时候,实际上Git自动把本地的master分支和远程的master分支对应起来了,并且远程库的默认名称是origin。
-
要查看远程库的信息 使用 git remote
-
要查看远程库的详细信息 使用 git remote –v
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6v7s5HlK-1581697293354)(Git使用教程.assets/1581696714497.png)]
推送分支:
推送分支就是把该分支上所有本地提交到远程库中,推送时,要指定本地分支,这样,Git就会把该分支推送到远程库对应的远程分支上:
使用命令 git push origin master
如果我们现在要推送到其他分支,比如dev分支上,我们还是那个命令 git push origin dev
这里我的理解就是:
push是推送,origin是https://gitee.com/thirtyleo/minipdf.git,最后一个参数就是分支名
因此:多人协作工作模式一般是这样的:
- 首先,可以试图用git push origin branch-name推送自己的修改.
- 如果推送失败,则因为远程分支比你的本地更新早,需要先用git pull试图合并。
origin是https://gitee.com/thirtyleo/minipdf.git,最后一个参数就是分支名
因此:多人协作工作模式一般是这样的:
- 首先,可以试图用git push origin branch-name推送自己的修改.
- 如果推送失败,则因为远程分支比你的本地更新早,需要先用git pull试图合并。
- 如果合并有冲突,则需要解决冲突,并在本地提交。再用git push origin branch-name推送。