1.git pull跟git pull origin dev区别
git pull 用于当前本地分支与远程已经建立了关联分支进行同步 git pull origin 用于当本地分支没有与远程分支关联的时候进行同步所需用到的
这也是为什么有时候我们git pull 并不能拉取代码,而是要用git pull origin。
其实origin是一个名字,它是在你clone一个托管在Github上代码库时,git为你默认创建的指向这个远程代码库的标签。
假设远端有一个叫dev分支,本地页创建了一个同名的dev分支,可以使用git branch --set-upstream-to origin/dev dev命令来创建关联,这样就可以使用git pull 来拉取代码。
另外git push 与git push origin 的区别其实是,
git push 用于当前只有一个追踪分支的时候可以这样使用,可以用git branch -r 来查看远程分支列表。 git push origin dev 将当前分支推送到与其同名的远程分支,如果没有该远程分支,则会创建一个。 git push origin 当前分支与远程分支有追踪关系,便可以省略分支名。
2.git commit -m '备注XXX',-m的作用
平时我们提交代码经常会用到git commit -m 'message',当中的-m 参数的意思是后面可以直接输入本次提交的说明,如果不加-m是不可以直接输入message的,通常会直接调用一个编辑器一般是vim来让你输入这个message。
另外加上-a属性 git commit -a -m ‘XXX’是可以让所已跟踪文件的修改删除操作提交到本地仓库,而不再用先git add 。新加的文件(即没有被git系统管理的文件)是不能被提交到本地仓库的。
3.push之后发现修改错误了,怎么回退到特定版本
对于已经线上push的代码,想要回退到之前指定的版本,可以使用git revert “版本号” 来回退,可以使用 git reflog来查看版本号
使用revert命令,其实是用新的commit来回滚旧的commit,所以不像reset 命令是直接删除commit,新commit很关键,版本向前走,所以代码回退后,当前版本代码回滚到历史版本,这是再git push一次就可以把线上的代码更新.不会用冲突。
如果是还没有push,只是commit提交了,可以使用git reset "commit的id" 来撤销,这种方式,会撤销commit,回退到上一个提交的节点,本地代码还是修改后的代码。也可以使用git reset -hard "commit的id",这样会提交节点回退的同时,本地代码也会变成修改之前。当reset之后,修改的只是本地,如果想远程仓库也发生改变,我们不能使用普通的push命令,而是要用git push origin 当前分支名 -f 强制push。
常用的其他命令
当需要隐藏当前修改的东西的时候,可以使用git stash命令,如果想要查看你所stash的东西,可以使用git stash list 命令,git stash clear q清空stash栈。git stash pop 把隐藏的代码拉回来,并删除stash所占用的空间。
git branch 查看本地分支
git branch -r 查看远程分支
git branch -a 查看所有分支
git branch -d 删除本地分支
git branch -b 创建分支
git checkout "分支名" 切换分支
git checkout -b "分支名" 切换并创建分支