如何简化Git分支推送拉取命令?git push/pull与带分支参数的区别
简化Git日常命令输入的方法
当然有办法减少这些重复的命令输入!作为用了Git好几年的老玩家,我来给你分享几个实用技巧:
一、简化git pull和git push的输入
你完全可以直接用git pull和git push代替完整的git pull origin foo、git push origin foo,关键是要让Git记住本地分支和远程分支的关联关系:
第一次推送时设置上游分支:当你第一次把本地
foo分支推送到远程时,执行:git push -u origin foo这里的
-u参数就是让Git把本地foo分支和远程origin/foo分支关联起来,之后再执行git pull或git push,Git就会自动知道要和哪个远程分支同步了。全局配置默认推送行为:如果不想每次新分支都手动加
-u,可以配置Git默认推送当前分支到远程同名分支:git config --global push.default current这样不管有没有设置上游,只要远程存在和当前本地分支同名的分支,直接
git push就能完成推送。
二、git push和git push origin foo的区别
git push origin foo是明确指定操作对象:不管你当前处于哪个本地分支,这条命令都会把本地的foo分支推送到远程origin仓库的foo分支。git push是依赖关联关系的简化命令:- 如果当前分支已经通过
-u关联了远程分支,它会推送当前分支到关联的远程分支; - 如果配置了
push.default current,它会推送当前分支到远程同名分支; - 如果既没关联也没配置,Git可能会抛出错误(不同版本行为略有差异),提示你需要明确指定远程和分支。
- 如果当前分支已经通过
三、额外的简化技巧:Git别名
除了pull/push,你还可以给常用的命令组合设置别名,进一步减少输入。比如你常用的git add . && git commit -m,可以这样配置:
git config --global alias.cam '!git add . && git commit -m'
之后提交代码就可以直接用:
git cam "Commit message"
一步完成添加和提交,是不是更高效?
内容的提问来源于stack exchange,提问作者Wordpressor




