常用的git命令整理
拉取git pull推送git push查看分支git branch切换分支git checkout 分支名删除本地分支git branch -d 分支名另一分支覆盖某个分支假设每个人有个开发分支,想隔一段时间就把自己的开发分支上的代码保持和测试分支一直,则需要如下操作:1.我想将test分支上的代码完全覆盖dev分支,首先切换到dev分支git check...
拉取
git pull
推送
git push
查看分支
git branch
切换分支
git checkout 分支名
删除本地分支
git branch -d 分支名
使用如下git命令查看所有远程分支:
git branch -r
查看远程和本地所有分支:
git branch -a
二、拉取远程分支并创建本地分支
方法一
使用如下命令:
git checkout -b 本地分支名x origin/远程分支名x
使用该方式会在本地新建分支x,并自动切换到该本地分支x。
采用此种方法建立的本地分支会和远程分支建立映射关系。
方式二
使用如下命令:
git fetch origin 远程分支名x:本地分支名x
使用该方式会在本地新建分支x,但是不会自动切换到该本地分支x,需要手动checkout。
采用此种方法建立的本地分支不会和远程分支建立映射关系。
另一分支覆盖某个分支
假设每个人有个开发分支,想隔一段时间就把自己的开发分支上的代码保持和测试分支一直,则需要如下操作:
1.我想将test分支上的代码完全覆盖dev分支,首先切换到dev分支
git checkout dev
2.然后直接设置代码给远程的test分支上的代码
git reset --hard origin/test
3.执行上面的命令后dev分支上的代码就完全被test分支上的代码覆盖了,注意只是本地分支,这时候还需要将本地分支强行推到远程分支。
git push -f
出现“Merge made by the ‘recursive’ strategy.”,因为在本地提交后没有切换分支,直接pull代码,导致分支切换后拉取、合并出现问题,可在本地分支先执行“git rebase dev”,再切换远程分支pull代码
git rebase dev
输入git log
可以查看提交的日志
commit后面接着的一连串字符就是你提交的ID,使用Git reset 加上commit ID就可以还原到你所需要的版本去.(commit ID很长,当然只需要输入前面5到6位字符既可)
git reset efce895
代码开发的时候,有时需要把某分支(比如develop分支)的某一次提交合并到另一分支(比如master分支),这就需要用到git cherry-pick
命令。
首先,切换到develop分支,敲 git log 命令,查找需要合并的commit记录,比如commitID:7fcb3defff;
然后,切换到master分支,使用 git cherry-pick 7fcb3defff
命令,就把该条commit记录合并到了master分支,这只是在本地合并到了master分支;
最后,git push 提交到master远程,至此,就把develop分支的这条commit所涉及的更改合并到了master分支。
1、查看所有分支
git branch -a
2、查看当前所在分支
git branch
3、删除本地的bug_xzx分支
git branch -d bug_xzx
4、删除远程的bug_xzx分支
git push origin --delete bug_xzx
三、git 本地分支关联远程分支
情况一:远程有对应分支
git branch --set-upstream-to=origin/remote_branch your_branch
其中,origin/remote_branch是你本地分支对应的远程分支;your_branch是你当前的本地分支。
情况二:远程无对应的分支
1.新建一个本地的分支
git branch -b newbranch //这个命令是新建一个分支,并切换到该分支上去
(git branch newbranch; git checkout newbranch)这两个命令合起来等同于上面的一个命令
2.新建一个远程分支(同名字的远程分支)
git push origin newbranch:newbranch //创建了一个远程分支名字叫 newbranch
3.把本地的新分支,和远程的新分支关联
git push --set-upstream origin newbranch
取消某次提交
一般有两种方案:reset和revert。
reset:会清除掉commit历史,使得提交记录更干净些。 revert:会重新创建一个commit,追加到commit历史。
建议采用revert这样如果撤销同样有问题的话,可以再次将最新的revert的commit撤销,安全一些。
操作
git revert <commit-id>
远程的Git密码修改后,本地的AndroidStudio,代码无法提交,提示push失败。
在可以git pull,git fetch,git rebase,git commit的情况下,无法push代码。
环境配置:windows10 【一个管理员admin运行但cmd时,没有管理员权限,会permission denied的坑爹场景
解决方案:
1. 命令: git config --system --unset credential.helper
把之前的账号记录给清空咯,重新设置一遍。
但倒霉孩子容易碰到: error: could not lock config file C:/Program Files/Git/mingw64/etc/gitconfig: Permission denied
这种情况下,获取管理员权限再输入命令,可以解决。
2.如果你使用的是AndroidStudio,在File =》 Settings =》PassWord 勾选Do not save,forget passwords after restart
然后你再搞提交,AS会提示要你重新输入账户密码信息
3.如果以上两个方法都失败了,而你恰巧是windows系统
控制面板 =》用户账户 =》 凭据管理器 =》 windows凭据 在里面找到你那个git账户的凭据,把密码给改了,就好了。
记住密码
git config --global credential.helper store
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)