Git 常用指令
git init
项目签名
git config [--global] user.name "wm" #设置配置信息 提交用户的名称 wm,--global表示全局设置 git config [--global] user.email 15804854160@163.com #设置配置信息 提交用户的邮箱
git add <文件名>
获取版本id
git reflog
版本还原
git checkout -- <文件名>
#还原指定的文件为最后一次提交的版本
git checkout -b dev origin/dev
git branch --set-upstream-to=origin/dev
git commit -a -m "message"
-a 参数表示,可以将所有已跟踪文件中的执行修改或删除操作的文件都提交到本地仓库,即使它们没有经过git add添加到暂存区。
注意,新加的文件(即没有被git系统管理的文件)是不能被提交到本地仓库的。建议一般不要使用-a 参数,正常的提交还是使用git add先将要改动的文件添加到暂存区,再用git commit 提交到本地版本库。
追加提交
git commit --amend
追加提交(不修改说明)
git commit --amend --no-edit
在不增加一个新的commit-id的情况下将新修改的代码追加到前一次的commit-id中。
1)假如现在版本库里最近的一版正是我们想要追加进去的那版,此时是最简单的,直接修改工作区代码,然后git add,之后就可以直接进行git push到服务器,中间不需要进行其他的操作如git pull等。
2)如果现在版本库里最近的一版不是我们想要追加进去的那版,那么此时我们需要将版本库里的版本回退到我们想要追加的那一版。
2.1> 第一种,如果我们知道我们需要的版本与现在最近的版本中间隔着 n 个提交,那么我们可以直接使用git reset --hard HEAD~n 命令,执行完后运行git log -1 命令我们会发现现在版本库里最近的一版就是我们需要的那版,此时再在工作区直接修改代码,改完之后进行git add,再执行本git commit --amend命令,之后git push。
2.2> 第二种,如果我们不知道我们需要的版本与现在最近的版本中间隔着 n 个提交,那么我们可以使用git log来查看版本库中的commit-id,找到我们需要的commit-id后,在终端中执行git reset --hard commit-id,执行完后运行git log -1 命令我们会发现现在版本库里最近的一版就是我们需要的那版,此时再在工作区直接修改代码,改完之后进行git add,再执行本git commit --amend命令,之后git push。
dev分支合并到master并提交
git branch //查看当前版本 git checkout dev // 如果当前在dev分支上面 则不用执行 如果不在dev 则执行 git pull // 拉取最新的代码 git checkout master //切换到master分支上面 git pull //确保最新的代码 git merge dev //将dev分支上面的代码合并到master git push origin master // 推送到远程master仓库
查看帮助
git commit --help
撤销修改
git撤销某个文件的修改,分为两种情况:
一、 在工作区修改,但并未提交到暂存区(即并没有add),对于单个文件的撤销修改而言,使用下面方法
git checkout -- file
2. 若想撤销工作区中所有文件的修改,则
git checkout .
注意:git chekcout 是让文件回到最近一次该文件git commit或git add时的状态。
二、工作区修改了之后,提交到了暂存区(即add),分为两种情况:
1. 对于该文件来说,在当前分支上,你从未commit过。这时候,git status后git给出提示:
git rm --cached file
2. 如果你已经有了commit的记录,先
git reset HEAD file
让该文件回到工作区的状态。然后
git chekcout -- file
撤销commit
转自:https://blog.csdn.net/w958796636/article/details/53611133
写完代码后,我们一般这样
git add . //添加所有文件
git commit -m "本功能全部完成"
执行完commit后,想撤回commit,怎么办?
这样凉拌:
git reset --soft HEAD^
这样就成功的撤销了你的commit
注意,仅仅是撤回commit操作,您写的代码仍然保留。
说一下个人理解:
HEAD^的意思是上一个版本,也可以写成HEAD~1
如果你进行了2次commit,想都撤回,可以使用HEAD~2
至于这几个参数:
--mixed
意思是:不删除工作空间改动代码,撤销commit,并且撤销git add . 操作
这个为默认参数,git reset --mixed HEAD^ 和 git reset HEAD^ 效果是一样的。
--soft
不删除工作空间改动代码,撤销commit,不撤销git add .
--hard
删除工作空间改动代码,撤销commit,撤销git add .
注意完成这个操作后,就恢复到了上一次的commit状态。
顺便说一下,如果commit注释写错了,只是想改一下注释,只需要:
git commit --amend
此时会进入默认vim编辑器,修改注释完毕后保存就好了。
如果远程主机的版本比本地版本更新,推送时Git会报错,要求先在本地做git pull合并差异,然后再推送到远程主机。这是正常合理的代码提交流程。 这时,如果你一定要推送,可以使用--force选项。
git push --force
回退上一次commit
git revert HEAD --no-edit