不管是linux还是git,都有相当一部分命令,但是如果不常用,或者久疏战阵,总会有些遗忘。好记性不如烂笔头。
美国《科学》杂志刊发了Betsy Sparrow等的科研论文,称Google等搜索引擎模式可能会损害人的大脑记忆力。意思大概是我们对互联网的依赖程度不断提高。对于绝大多数人来说,寻找某个问题的答案就是简单地敲击键盘和滑动鼠标。而对于那些需要思考的问题,人们也会条件反射般地借助网络搜索答案。嗯,没错,下次再忘了,就来这里看,不要用Google啦。
dev
分支从主分支master
创建dev
分支并切换
# 这个可以
git checkout -b dev
# =>等价于
git branch dev #先创建
git checkout dev #再切换
# 这个也可以-switch切换-也更好理解
git switch -c dev
git checkout master
合并dev
分支至当前分支master
#把dev分支的工作成果合并到master分支
git merge dev
git branch -d dev
git push -u origin master
因为创建、合并和删除分支非常快,所以Git
鼓励你使用分支完成某个任务,
合并后再删掉分支,这和直接在master分支上工作效果是一样的,但过程更安全。
查看分支:git branch
创建分支:git branch <name>
切换分支:git checkout <name>
git switch -c dev
创建+切换分支:git checkout -b <name>
合并某分支到当前分支:git merge <name>
删除分支:git branch -d <name>
git config --global user.email "email@example.com"
git config --global user.email "287572291@qq.com"
git init
git add readme.txt
git commit -m "wrote a readme file"
#单解释一下git commit命令,
#-m后面输入的是本次提交的说明,可以输入任意内容,当然最好是有意义的,
#这样你就能从历史记录里方便地找到改动记录。
#嫌麻烦不想输入-m "xxx"行不行?确实有办法可以这么干,但是强烈不建议你这么干,因为输入说明对自己对别人阅读都很重要。
#实在不想输入说明的童鞋请自行Google,我不告诉你这个参数。
#git commit命令执行成功后会告诉你,1个文件被改动(我们新添加的readme.txt文件),
#插入了两行内容(readme.txt有两行内容)。
git log
#如果嫌输出信息太多,看得眼花缭乱的,可以试试加上--pretty=oneline参数
git log --pretty=oneline
#log中有很长一段字符串,是一个SHA1计算出来的一个非常大的数字,用十六进制表示
#我们要把当前版本“append GPL”回退到上一个版本“add distributed”,就可以使用git reset命令
git reset --hard HEAD^
HEAD is now at ea34578 add distributed
git reset --hard 3628164
HEAD is now at 3628164 append GPL
# 版本号没必要写全,前几位就可以了,Git会自动去找。
# 当然也不能只写前一两位,因为Git可能会找到多个版本号,
# 就无法确定是哪一个了。
git reflog
git status
git rm test.txt
git commit -m "remove test.txt"
以github
为例
git remote add origin https://github.com/RandyField/learn-note-randy.git
git remote add origin git@github.com:RandyField/learn-note-randy.git
git push -u origin master
现在,远程库已经准备好了,下一步是用命令git clone
克隆一个本地库
git clone git@github.com:michaelliao/gitskills.git
# git add命令实际上就是把要提交的所有修改放到暂存区(Stage),
# 执行git commit就可以一次性把暂存区的所有修改提交到分支。
# 提交后,如果你又没有对工作区做任何修改,那么工作区就是“干净”的:
# git checkout -- readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况:
# 一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
# 一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
# 总之,就是让这个文件回到最近一次git commit或git add时的状态。
# git checkout -- file命令中的--很重要,没有--,
# 就变成了“切换到另一个分支”的命令,我们在后面的分支管理中会再次遇到git checkout命令。
# Git同样告诉我们,用命令git reset HEAD file可以把暂存区的修改撤销掉(unstage),重新放回工作区:
https://www.liaoxuefeng.com/wiki/896043488029600/896067008724000
原文:https://www.cnblogs.com/RandyField/p/12726874.html