写给本文网友读者的话:如果你之前不了解git,那么这文章不适合你,因为它不系统,没有讲解,只是单纯的而且杂乱的记录,连整理都谈不上。我之前在网上搜索的时候,好像(应该)也和我这篇文章一样,“这MD都写了些啥啊”——内心的旁白。如果你之前已经了解git,那么这文章适合你,通常你可以快速的找到你想要的东西。
对于我而言,这只是一个学习的笔记。不用“参考资料”的字眼,改为“学习资料”,链接如下:
https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
git status : 查看状态,当前分支下被修改的文件
git add <file> :添加指定的文件,用来进行提交的。
git diff <file> :对比文件
git commit -m : "此次提交内容的日志,支持中文" //提交至本地库(当前分支)
连接VPN后,进行提交至远程库
git remote update -p : 更新远程所有分支,其结果会显示所有分支
git rebase *** : 其中***为需要合并到的分支名(上一步操作会显示,所以复制想要的分支即可)。把本地未push的分叉提交历史整理
成直线;使得在查看历史提交的变化时更容易,因为分叉的提交需要三方对比。
git push origin crsh : 提交至远程分支(这种情况是确保没有冲突的情况,可以直接提交,否则需要先拉远程库)
上步如果失败,则需要git pull 从远程拉下试图合并,如果有冲突,则解决冲突,并在本地提交。
如果git pull 提示 no tracking information ,则说明本地分支与远程分支没有创建连接,用命令:
git branch --set-upstream-to <branch-name> origin/<branch-name>
----------至此命令操作完成----------下面为网页操作--------------
记得选择相关的分支进行合并
git log --pretty=oneline : 查看提交日志,后面的参数可以去掉,加上后显示信息少,但格式规整。
版本回退: HEAD表示当前版本; git reset --hard HEAD^ :回退至上一个版本。
使用命令git reset --hard commit_id。穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。
要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。
git checkout --fileName :撤销修改到最近一次git commit 或 git add 时的状态。 “--”很重要,如果没有就变成了切换分支的命令了
。
如果想撤销的文件已经git add到暂存区了,使用: 【git reset HEAD fileName】来退到工作区,然后使用checkout命令撤销。
git rm fileName; git commit -m "" :将文件从版本库中删除。 git checkout -- fileName恢复(在commit之前有效)
git clone 地址 : 从远程库克隆一份至本地;git支持多种协议 https ssh
git checkout -b crsh = git branch crsh; git checkout crsh : 其中crsh为分支名。创建并切换至分支
git branch : 查看当前分支(前面标有星号 * ),会列出所有分支
git merge crsh : 把分支crsh合并到master分支上
git merge --no-ff -m "merge with no-ff" crsh : 把分支crsh以非Fast forward模式合并到master分支上;合并后的历史有分支,能看出
来曾经做过合并
git branch -d crsh : 把crsh分支删除 -D :是强行删除 ;即-d不行的话,用-D
解决冲突:把合并失败的文件手动编辑为我们希望的内容,再提交
git log --graph : 查看分支合并图
git stash : 保存工作现场(工作途中突然需要解决BUG时可用)
git stash list : 查看已保存的工作现场
git stash pop : 恢复之前保存的工作现场,同时把stash内容删除;git stash apply :也是恢复,但需要用git stash drop来删除stash内
容
git tag v1.0 : 打标签,标签为v1.0
git tag : 查看所有标签
git show v1.0 : 查看标签内容
git tag -a tagname -m "" ID : -a指定标签名, -m指定说明文字
git tag -d v1.0 : 删除标签(本地)
git push origin :refs/tags/<tagname> : 删除标签(远程)
git push origin <tagname> 推送一个本地标签
【标签总是与某个commit挂钩,如果这个commit既出现在master分支,又出现在dev分支,则这两个分支都可以看到这个标签】
查找commit的id : git log --pretty=oneline --abbrev-commit