实用的git命令

368 阅读6分钟
git暂存命令

git stash save 'message' 暂存并命名为message

git stash clear 删除stash的所有记录

git stash list git暂存列表信息

git stash pop [ stash@{id} ] 解放暂存(释放暂存的同时会在暂存列表中把该暂存移除)

git stash apply 应用最近一次的stash

git stash pop 应用最近一次的stash记录,并且释放暂存列表中的这项记录

git stash drop 删除最近一次的暂存记录

注意:1、在两个分支上频繁的使用暂存命令,然后在切回到某个分支进行释放暂存操作时由于没有加stash@{id} 导致两个分支上的内容出现了混乱,a分支的代码在b分支出现了。 2、在还没有提交到远端的文件进行修改时无法进行暂存操作,暂存命令只能对已经在远端上提交过的命令进行操作

git删除分支命令

git branch -a 查看本地与远程分支命令

git branch -d [branchName] 删除本地分支(删除某一个分支时需要切换到其他的分支进行删除)

git push origin --delete [branchName] 删除远程分支

恢复最近一次的commit命令

git reset --soft HEAD^

get reset --soft cb35a15c56ac8c50a2707ea85b11dca3a04b601d 回滚到某一次的提交命令

如果已经push也可以使用git reset --soft HEAD^ 撤回,但是使用reset会从最近的一次提交撤回到要撤回的那一次的所有记录

**举个例子: 比如提交记录依次为a,b,c在回退到c的版本的时候会把a跟b的也全部回退掉

查看commit的记录

git log

cherry-pick 把a分支提交的提交在b分支上抽离出来单独处理

复制单个commit记录使用 1、拿到a分支的commit记录号复制下来 2、切换到b分支执行以下命令

git cherry-pick [commit]

复制多个commit记录使用 <1> 一次性转移多个commit记录执行以下命令 git cherry-pick [commit1][commit2]

<2> 多个连需的commit区间转移执行以下命令 git cherry-pick commit1^..commit10

**上边命令将commit1到commit2中间所有的提交都应用到了当前分支(包含commit1与commit2),commit1是最早的提交

代码冲突解决 在cherry-pick多条记录时可能会出现代码冲突,cherry-pick会停下来,让用户决定如何继续操作。

在a分支提交了三次提交 切换到b分支,把a分支上的三次提交依次复制到b分支上,先把起到到终点的提交记录下来 git cherry-pick commit1^..commit3 commit1复制成功,在进行到commit2的时候发现了代码冲突,cherry-pick中断了。这时需要解决冲突,重新提交到暂存区

冲突解决后 git cherry-pick --continue

使用git cherry-pick --continue让cherry-pick继续进行下去,最后commit3也被复制进来,整个流程就完成了。

以上是完整的流程,但有时候需要在代码冲突后放弃或者退出流程: 1、放弃cherry-pick

git cherry-pick --abort

恢复到操作前的样子,像什么都没有发生过

2、退出cherry-pick

git cherry-pick --quit

不回退到操作的样式,保留已经cherry-picK成功的commit,退出cherry-pick 流程

git 提交命令
<第一次提交代码到远程仓库>

1、执行以下命令初始化仓库

git init

2、配置账号邮箱

git config --global user.name [userName]

git config --global user.email [emailAddress]

3、配置远程仓库链接

git remote add origin http://141.168.110.132:8080/text/project.git

4、 使用以下命令查看是否配置成功

git remote -v

5、添加代码到缓存区 git add . git commit -m 'message'

commit之后可以查看状态 git status 执行命令后看到代码全变绿色,没有问题 6、推送代码到远程master仓库 git push -u origin master

git 重命名分支操作

1、本地分支重命名(还没有推送到远端)

    git branch -m oldName newName   // 重命名远程分支对应的本地分支

** 2、删除远程分支**

     git push --delete origin oldName   // 删除远程分支

** 3、上传新命名的本地分支**

    git push origin newName  // 上传新命名的本地分支

** 4、修改后的本地分支与远程建立关联**

    git branch  --set-upstream-to origin/newName
<新入职一个成型的项目时>

1、git clone [仓库地址] 克隆仓库(执行这个命令后代码就从远端拉取了下来)

2、npm install 安装项目需要的依赖包

3、修改代码后执行初始化仓库中5-6的操作即可,如果当前所在的分支就是开发分支第六步可直接执行git push

git分支命令

git checkout [branchName] 切换分支 git branch [branchName] 创建分支命令(在那个分支进行创建,创建出来的代码与那个分支是相同的)

git对比两个分支代码区别
1、git checkout [目标分支]
2、在目标分支git diff [要对比的分支]

例如要对比的分支为a与b,先切换到a分支然后通过git diff b 命令可以看出两个分支的差异代码,以-开头为a分支上修改的代码,以+开头为b分支的代码

git不常使用命令,但是也有可能会用上

1、git mv [oldname] [newname] 文件重命名

2、git commit -m '备注'

3、git push origin dev 代码提交到远程

*这个命令不常用,有时候却很有用,领导在一次自动化部署项目中发现路由中的名称与文件的名称存在大小写不一致,导致在部署过程中报错。让我来解决这个问题。在修改文件名称提交跟修改路由配置中的名称来解决这个问题的过程中发现git提交是自动忽略大小写的变化的,然后从网上搜各种方法来解决这个问题,git mv就成为了不错的选择。(在没有发现git mv之前走了不少弯路,具体发生了什么记不清了)

也可以先把文件修改为其他的名称然后再修改回来这个时候把大小写修改正确提交上去也是可以的(亲测有效)

直接修改远程仓库地址命令

1、git remote set-url origin URL // URL代表的是新的仓库地址