git 实战常用命令
克隆指定分支
git clone -b master gitslab.yiqing.com/declare/abo…
git stash 缓存代码
git stash 会把所有未提交的修改(包括暂存的和非暂存的)都保存起来,用于后续恢复当前工作目录。
- git stash list: 查看缓存队列
- git stash pop: 恢复之前缓存的代码 ,这个指令会将缓存堆栈中第一个stash 删除
- git stash apply: 将缓存堆栈中的stash多次应用到工作目录中,但并不删除stash拷贝
- git stash apply stash@{0}:选择队列中第一条
- git stash drop stash@{2}: 删除队列的第三条缓存
- git stash clear:删除所有存储的进度
创建并切换分支
一般当我们需要在两个迭代版本同时开发时,我们需要对代码建立2套分支。或者当我们分支受到污染,不想修改时,可以创建新的干净的分支再开发。
- git branch -a :查看所有分支
- git checkout test01: 切换到test01分支
- git checkout -b test02:创建test02分支
- git checkout -b test03 origin/master: 从origin库的master分支上创建新分支test03
- git branch -D test03:删除本地分支test03
- git fetch -a:查看并更新关联库的所有分支(主仓有新分支时,建议使用)
查看并关联仓库
- git remote -v:查看关联的所有仓库
- (git remote add 别名 远程库地址) : 关联新的远程仓库,并加上别名
- git remote remove origin : 删除关联的origin库
提交一个空提交
在三方合作中,提交一个空的提交有助于更新仓库代码,比如 有一个主库地址origin,有开发者A和B。A,B在共同开发一个需求,需要在A的库拉新分支进行开发,如果开发过程B拉取了origin库新代码。并将自己代码合入A分支上时,需要A更新自己的分支。这时A就需要拉去origin库新代码,并提交一个空提交到新分支。
- git pull origin master
- git commit --allow-empty -m'empty'
- git push my test04
git cherry-pick 同步提交
我在项目开发时写了一个需求,现在需要将同样的功能提交到test01 和test02分支。在我将代码提交到test01分支后,可以使用cherry-pick将提交的代码同步到test02分支上。就是将指定的提交(commit)应用于其他分支。
cherry-pick可以一次提交一个commit或者多个commit。
- 在test01分支提交代码。(git add ,git commit, git push)
- 切换到test02分支,通过git reflog 查看提交记录。找到需要的commitHash
- 使用cherry-pick提交。git cherry-pick e877b18c7 正常情况下就已经有一个新的commit,只需要再push下。
- 如果第三步发生冲突,那么cherry-pick就会中断,需要解决冲突后再重新 add ,commit,push操作。
如果需要同时转移多个提交可以有两种方式
- 直接列举多个commitHash : git cherry-pick hashA hashB
- 如果想要转移一系列的连续提交: git cherry-pick hashA..hashB
变基操作
git 有两种合并方式git merge和git rebase。下面是rebase变基合并的一些命令
git rebase --abort 完全撤消变基。 Git 将返回到分支的状态,即调用 git rebase 之前的状态
如果变基过程中因为操作失误,而退出了刚刚的编辑页面,可以git rebase --edit-todo 回到刚刚的编辑页面继续操作。
解决冲突,如果在变基过程有冲突里先解决冲突所做修改添加到暂存区git add .
然后继续变基 git rebase --continue 上面两步可能会多次重复执行
如果出现了 Successfully rebased and updated xxxx ,说明操作成功了!
这时查看 log 就会发现第1步中的commit在最新的位置处,并且远程的修改也按顺序排好了。
变基操作完成,可直接执行 push 操作了。
git config 配置
在git中,我们使用git config 命令用来配置git的配置文件,git配置级别主要有以下3类:
1、仓库级别 local 【优先级最高】 1、git config --local -l 查看仓库配置
2、用户级别 global【优先级次之】 1、git config --global -l 查看用户配置
3、系统级别 system【优先级最低】1、git config --system -l 查看系统配置
如何修改配置呢。 可以通过命令去修改:
$ git config --global user.name "yjk" 修改用户名 修改完后通过git config --global -l查看
也可以直接编辑:
比如我们直接编辑用户级别 : 使用命令 git config --global --edit 就会打开配置文件,进行编辑,使用vim命令即可编辑。
注:vim基本命令 用户刚刚启动 vi/vim,便进入了命令模式。在命令模式下按下i就进入了输入模式。当我们编辑好了后 按ESC,退出输入模式,切换到命令模式。 在命令模式下按下:(英文冒号)就进入了底线命令模式。 按wq保存并退出程序 。
- i 进入输入模式
- x 删除字符
- esc 退出输入模式到命令模式
- : 命令模式到底线命令模式
- q 退出程序
- w 保存文件