仓库:简单理解为一个目录,里面的文件都被git管理起来了
创建本地git仓库:git init
添加文件到仓库: git add [file-name]
把文件提交到仓库:git commit -m "some message"
查看当前仓库状态:git status
查看文件差异:git diff
git diff HEAD -- readme.txt 查看工作区和版本库里面最新版本的区别
显示提交日志:git log [--pretty=oneline]
回退版本:git reset --hard HEAD^ (HEAD^表示最新版本的上个版本,HEAD^^表示上上个版本,HEAD~100表示往前推100个版本, 该参数也可以换成对应的版本号)
查找你的执行命令记录:git reflog
git管理的是修改而不是文件,工作区的修改在ADD之后就放到了暂存区,COMMIT之后工作区的修改就提交到版本库
撤销工作区的修改:git restore [file-name] 或者 git checkout -- [file-name]
撤销暂存区的修改:先执行git reset HEAD [file-name] 然后 再执行 git restore [file-name] 或者 git checkout -- [file-name]
删除文件:git rm [file-name]
在本地生成一对公钥和私钥(只有自己本机上持有),然后将公钥添加到github账号上,那么你推送代码到远程桌面的时候,使用私钥进行加密,github服务器就可以使用公钥去验证是你本人提交的
将远程的仓库跟本地的联系在一起: git remote add [email protected]:keasal/java-algorithm.git
添加后,远程库的名字就是origin(可修改)
删除远程库(其实只是跟本地库解绑而已):git remote rm origin
第一次推送master分支的所有内容:git push -u origin master
推送更新:git push origin master
克隆仓库: git clone <远程仓库地址>
创建并切换到分支dev:git checkout -b dev 或者 git switch -c dev
创建新分支dev:git branch dev
切换分支:git checkout dev 或者 git switch dev
合并指定分支到当前分支: git merge
删除分支:git branch -d dev
查看记录: git log --graph --pretty=oneline --abbrev-commit
禁用fast forward的合并分支:git merge --no-ff -m "merge with no-ff" dev
修复bug可以创建一个临时的分支,修改好后合并到主分支上
当手头上的工作没有完成时,可以使用命令git stash一下保存工作现场,然后后面使用git stash pop回到工作现场
把某个分支上的提交“复制”到另外一个分支:git cherry-pick
强制删除分支:git branch -D
查看远程仓库信息:git remote -v
创建远程origin的dev分支到本地:git checkout -b dev origin/dev
设置远程的分支和本地分支关联:git branch --set-upstream-to=origin/dev dev
远程抓取分支最新内容(有冲突需要手动处理,提交):git pull
变基,把本地未push的分叉提交历史整理成直线:git rebase
标签是跟某个commit绑定到一起的
查看所有的标签:git tag
创建一个标签:git tag
创建标签并指定信息:git tag -a
查看标签的详细信息:git show
推送一个本地标签:git push origin
推送本地所有还没推送的标签:git push origin --tags
删除一个本地标签:git tag -d
删除远程的标签:git push origin :refs/tags/
检查那个忽略规则忽略了某个文件:git check-ignore -v App.class