Git学习笔记--基础
因为之前没有怎么系统的学过git,唯一记得的就是当初写PA的时候用过git的分支功能和提交,也没学过其他的版本控制工具,所以先简单学一下基础的操作,如果想查看详细的教程,可以跳到文章结尾,点击我附上的链接查看
创建版本库
可以把版本库理解为仓库
-
创建一个空目录
$ mkdir learngit $ cd learngit $ pwd /Users/michael/learngit
-
将空目录变成仓库
git init
-
把文件添加到版本库
git add readme.txt
-
提交到仓库
git commit -m "wrote a readme file"
-m
后接的是本次提交说明
版本管理
-
查看仓库状态
git status
-
查看文件区别
git diff readme.txt
-
日志查看
git log
-
回退版本
git reset --hard HEAD^
HEAD是当前指向的指针,加一个
^
,表示回退一个提交,^^
表示两个提交,以此类推,多个是~n
回退版本了又后悔了怎么办,查看commit_id,然后修改HEAD指向
查看历史commit_id:
git reflog
找到后修改HEAD指向:
git reset --hard 1094axxxx(your_commit_id)
-
工作区与缓存区
没有
add
前,在工作区,add
后进入缓存区,commit
后提交修改 -
删除文件
当删除一个文件后,需要同步到版本库
git status
查看文件的区别(删了哪些文件)
然后把版本库中的相应文件删掉
git rm test.txt
提交
git commit -m "remove somefile"
如果是不小心把工作区的文件删了,想从暂存区或者版本库同步
git checkout -- test.txt
分支管理
-
创建分支
git branch dev(分支名)
-
切换分支
git switch master
-
删除分支
git branch -d dev
-
分支合并
不建议使用快速合并模式
git merge --no-ff
标签管理
标签相当于一个指向提交的指针
commit_id太复杂了用标签来代替可以方便记忆
-
打标签
git tag v1.0
-
查看标签
git tag
-
补标签
git tag v0.9 f52c633(commit_id)
-
删除标签
git tag -d v0.9
-
推送标签到远程
git push origin v1.0
-
删除远程的标签
删除本地的标签后:
git push origin :refs/tags/v0.9
远程仓库
-
克隆
git clone xxxx
从指定分支克隆
git clone -b <分支名> <仓库地址>
-
上传
将指定分支上传到指定分支:
git push origin <本地指定分支>:<远程指定分支>
-
删除
删除远程分支:
git push origin --del <远程分支名>
-
更新
从指定远程拉去更新:
git pull origin <远程分支名>:<本地分支名>
参考: