文章目录
前言
在学习了廖雪峰老师的git教程后,做个笔记总结一下自己的所学。(感兴趣的可前往廖雪峰老师的网站学习:https://www.liaoxuefeng.com/wiki/896043488029600)
一、基础指令
(1)git init讲一个文件夹初始化为一个git仓库。
(2)git add将修改的文件添加到暂存区。
(3)git commit将暂存区内的文件提交到仓库。
(4)git status查看当前仓库的状态。
(5)git diff查看被修改的内容。
(6)git log查看提交日志。
(7)git reflog查看命令历史。
(8)git clone克隆一个远程仓库。
二、版本控制
2.1 版本回退
git reset --hard 版本号/HEAD
版本回退必须知道当前版本,在Git中HEAD表示当前版本,上一个版本表示HEAD^,往上N个版本则为HEAD~N。
git checkout --file可以丢弃工作区的修改。丢弃工作区的修改包括(1)修改还没放入暂存区,此时撤销修改就会到和版本库一模一样的状态。(2)修改已添加到暂存区,此时撤销修改就回到添加到暂存区后的状态。总之就是让这个文件回到最近的一次git commit或git add时的状态。
2.2删除文件
当使用rm删除一个文件时可以使用git checkout – file来恢复这个文件,但前提是删除的这个行为并没有影响到版本库,即版本库里还存有被删除的文件。
三、远程仓库
3.1关联远程库
git remote origin SSH/Https地址可以将本地仓库与远程仓库关联上(在远程添加一个叫origin的仓库),用git push origin master将本地仓库的内容推送到远程仓库里(origin指远程库,master指本地的分支)。
3.2删除远程库
**git remote rm name **删除远程库(name只远程库的名字)
四、分支管理
4.1创建于合并分支
git checkout -b name创建分支并切换到创建的分支,相当于git branch name(创建分支)、git checkout name(切换分支(git switch -c name也可切换分支)) 两条命令。git branch查看分支,当前分支前面会有一个*号。git merge a将a分支合并到当前分支。
4.2Bug分支
git stash可以将当前的工作区隐藏起来,相当于没有对该分支有一点点的修改,可以用git stash list查看被隐藏的工作区。将工作区的内容恢复可以用两种方法(1)git stash apply恢复工作区以后还需使用git stash drop来删除stash内容;(2)git stash pop恢复工作区内容的同时将stash内容删除。该Bug可能在其他分支上也有那么可以使用git cherry-pick commit-id复制一个特定的提交到当前分支。
4.3删除分支
git branch -d 分支名称用于删除分支。git branch -D 分支名称用于删除没有合并过的分支。
4.4多人协同
当从远程仓库克隆时,实际上是将本地的matser分支和远程的master分支对应起来。因此当从远程库克隆时,默认情况下只能看到master分支。其他分支如开发分支dev是看不到的。需要使用git checkout -b dev origin/dev创建远程的origin的dev分支到本地。如果git pull提示no tracking information,则需要用git branch --set-upstream-to branch-name origin/branch-name来创建本地分支与远程分支的链接关系。
五、标签管理
5.1创建标签
git tag name给分支打上标签,默认标签打在最新的commit上。git tag查看所有标签。git tag name commit-id给指定提交打标签。git show name查看标签信息。查看标签打在那一次提交上。
5.2操作标签
git tag -d name删除指定标签(本地)。git push origin :refs/tags/name删除指定标签(远程)。创建的标签都只存储在本地,不会自动推送到远程,可以使用git push origin name将标签推送到远程,或者git push origin --tags将所有标签都推送到远程。