标题
查看git版本
git --version
查看本地分支、查看远程分支
git branch # 查看本地分支及当前所在分支(前面带有“*” )
git branch -a # 查看本地和远程所有分支
git branch -r #只查看远程分支
查看分支时,如果发现新创建的远程分支看不到,可以执行“git pull”或“git fetch”后,再执行该命令就可以查看到。
如果分支太多,还可以用此命令进行分支模糊查找: git branch | grep ‘branchName’
本地分支之间相互切换和查看
这种是使用最多和最常见的操作。
git checkout 本地分支名
在源分支的基础上创建新分支
比如,新需求来时,想在master分支的基础上创建一个新分支“dev”(该分支在本地、远程仓库都没有)。
1.先切换到源分支,然后创建本地分支:
git checkout master #切换到想要拉取的源分支
git pull #拉取最新分支
git checkout -b dev #创建一个新的本地分支dev,并自动切到新分支dev上
2.推送本地分支到远程仓库
git push --set-upstream origin dev
本地分支关联远程分支
使用git在本地新建一个分支后,需要做远程分支关联。
git branch --set-upstream-to=origin/remote_branch your_branch
目的是在执行git pull、git push操作时就不需要指定对应的远程分支,你只要没有显示指定,git pull的时候,就会提示你。
从远程仓库里拉取一个本地不存在的分支
先clone下代码:
git clone <remote-repo-url>
执行成功后,进入项目目录:
git checkout -b 本地分支名 origin/远程分支名
执行命令后,会创建一个新的本地分支,并自动切到新分支上。该本地分支与指定的远程分支关联起来。如果拉取不成功,需要先执行git fetch“”,再执行上面的命令。
github上拉取指定tag的代码
先clone下代码:
git clone <remote-repo-url>
执行成功后,进入项目目录,查看tag,并切换到tag
git tag #查看tag
git checkout -b branch_name tag_name
如果提示当前处于“detached HEAD” 状态,因为tag相当于一个快照,不能修改它的代码。
如果提示分支已存在,那现删除本地分支,再执行切换命令。
github上拉取指定分支的代码
拉取指定分支的代码:
git clone --branch <branchname> <remote-repo-url>
#或者
git clone -b <branchname> <remote-repo-url> #-b是--branch 的别名
分支合并
场景:开发分支(dev)上的代码达到上线的标准后,要合并到 master 分支。
git checkout dev #切换到dev分支上
git pull #拉去最新代码,有可能其他人刚刚提交过新代码
git checkout master #切换到目标分支
git pull #拉去最新代码,有可能其他人在你之前合并过一次
git merge dev #在目标分支merge,合并dev分支到当前分支上
git push -u origin master #通常git push就可以了
只合并部分提交
IDEA里叫摘樱桃,樱桃提交什么意思?
在同一个分支,A提交了一段代码,B也提交了一段代码,如果合并的到master的时候只需要A的代码,就用上了这个功能,只选择某一个提交合并,而不是全部合并。
git checkout dev #切换到dev分支上
git pull #拉去最新代码,有可能其他人刚刚提交过新代码
git checkout master #切换到目标分支
git pull #拉去最新代码,有可能其他人在你之前合并过一次
#git merge dev #在目标分支merge,合并dev分支到当前分支上 ~~
git push -u origin master #通常git push就可以了
git merge dev #在目标分支merge,合并dev分支到当前分支上
接下来:
1、找到git的Show History(好几个地方可以进入:上面工具栏可以,下面信息栏可以,左边项目菜单可以);
2、Branch:这里选择你的dev分支也行,All也行(反正就是你刚才提交的分支);
3、选择(可以多选)上你提交过的记录,然后右键cherry-pick;
4、git push。
删除本地分支、删除远程分支
删除本地分支,删除前后可以通过“git branch”查看
git branch -D 本地分支名
删除远程分支,删除前后可以通过“git branch -r”查看
git push origin -d 简单的远程分支名 #或者git push origin --delete [branchname]
比如,通过“git branch -r”查看的远程分支名叫“origin/dev”,删除命令为“git push origin -d dev”。
注意: 在删除远程分支时,同名的本地分支并不会被删除,所以还需要单独删除本地同名分支。
清理本地无效分支(远程已删除本地没删除的分支)
git fetch -p
git config --global设置用户名和邮件
git config --global user.name "wangxxx"
git config --global user.email "wangxxx@163.com"
如果使用了 --global 选项,那么该命令只需要运行一次,因为之后无论你在该系统上做任何事情, Git 都会使用那些信息。 当你想针对特定项目使用不同的用户名称与邮件地址时,可以在那个项目目录下运行没有 --global 选项的命令来配置。
设置后查看
git config --list
# 或者,查看所有的配置以及它们所在的文件
git config --list --show-origin
发现多了两项
user.name=wangxxx
user.email=wangxxx@163.com
重置账号密码、存储账号密码
git鉴权失败,重置用户名、密码
git config --system --unset credential.helper
git config --global --unset credential.helper
接下来,每次执行git命令时都会提示输入账号密码。避免每次都要输入,可以执行store命令存储账号密码。
git config credential.helper store
修改最后一次commit的注释
git commit --amend
撤回未add的修改
回退修改的代码,git add或者git restore,“git restore .”会撤回所有的修改。
git restore <file>
更多命令可以参考Git官网
Git官方文档:https://git-scm.com/docs