小知识:
在git中,用HEAD表示当前版本。
git回退版本速度非常快,得益于HEAD指针,每次回退仅仅改变了指针指向。
git add实际上是把要提交的所有修改放到暂存区(Stage),然后git commit一次性把暂存区的所有修改提交到分支。
git之所以优秀,是因为git跟踪并管理的是修改,而非文件。
命令记录:
配置命令
git config --global user.name “”
git config --global user.email “”
初始命令,把本目录变成git可以管理的仓库
git init
添加文件到仓库
git add <file>
e.g.
git add file1.txt
git add file2.txt file3.txt
添加所有文件到仓库
git add .
提交文件到仓库
git commit -m “”
查看工作区的状态
git status
查看文件修改的内容
git diff <file>
查看工作区和版本库里面最新版本的区别
git diff HEAD -- <file>
查看提交历史
git log 或 git log --pretty=oneline
回退到上一个版本
git reset --hard HEAD^
指定跳到某个版本
git reset --hard <版本号>
查看命令历史
git reflog
丢弃工作区的修改
1)如果还没添加到暂存区,就撤回和版本库一样的状态
2)已经添加到暂存区,还修改了,就撤回到之前添加时的模样
git checkout -- <file>
把暂存区的修改撤销掉(取消暂存unstage),重回工作区
git reset HEAD <file>
从暂存区删除文件
git rm <file>
关联一个远程库
git remote add origin <远程库>
第一次推送
git push -u origin master
以后的推送
git push origin master
查看分支
git branch
创建分支
git branch <name>
切换分支
git checkout <name> 或 git switch <name>(需新版本git)
创建+切换分支
git checkout -b <name> 或 git switch -c <name>(需新版本git)
合并某分支到当前分支
git merge <name>
删除分支
git branch -d <name>
保护现场
git stash
查看现场列表
git stash list
回到现场,并删除现场
git stash pop
在master分支上修复的bug,想合并到dev
git cherry-pick <commit>
本地创建与远程分支对应的分支
git checkout -b <name> origin/<name>
建立本地分支和远程分支的关联
git branch --set-upstream <name> origin/<name>
从远程抓取分支
git pull
打标签
git tag <name>
指定标签信息
git tag -a <name> -m “”
查看标签
git tag
推送一个标签
git push origin <name>
推送所有标签
git push origin --tags
删除一个本地标签
git tag -d <name>
删除一个远程标签
git push origin :refs/tags/<name>