git常用命令笔记

标题

  • 查看git版本
  • 查看本地分支、查看远程分支
  • 本地分支之间相互切换和查看
  • 在源分支的基础上创建新分支
  • 本地分支关联远程分支
  • 从远程仓库里拉取一个本地不存在的分支
  • github上拉取指定tag的代码
  • github上拉取指定分支的代码
  • 分支合并
  • 只合并部分提交
  • 删除本地分支、删除远程分支
  • 清理本地无效分支(远程已删除本地没删除的分支)
  • git config --global设置用户名和邮件
  • 重置账号密码、存储账号密码
  • 修改最后一次commit的注释
  • 撤回未add的修改


查看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 "[email protected]"

设置后查看

git config --list

发现多了两项

user.name=wangxxx
[email protected]



重置账号密码、存储账号密码

git鉴权失败,重置用户名、密码

git config --system --unset credential.helper
git config --global --unset credential.helper

在执行其他git命令,会提示输入账号密码。

但每次执行git命令都提示输入账号密码,所以执行store命令存储账号密码,就不用反复输入了。

git config credential.helper store

命令没有“–global”参数,意思是指只对这个仓库生效,建议不要加“–global”,让代码配置以仓库为单位存储,设置成全局不灵活。



修改最后一次commit的注释

git commit --amend


撤回未add的修改

回退修改的代码,git add或者git restore,“git restore .”会撤回所有的修改。

git restore <file>


你可能感兴趣的:(git,git)