git工作中常用命令

git命令:

git config --global user.email “your@email.com”
git config --global user.name “yourname”

git clone -b 分支名 地址

测试分支:ns_ci_int_qa
git pull --rebase origin ns_ci_int_qa 同步远端分支代码

线上分支:dbg_add_pro_biz

1、从线上分支拉取新的分支开发

git add
git commit -m “YJ: xxx”
gitk

2、如果有多个 合并分支
git rebase -i HEAD~2 //数量是几个提交
git rebase --continue //继续合并
git rebase --rebort //取消合并
git rebase -i 提交记录1 提交记录2 前开后闭

执行这个命令后会跳转到 vim编辑器
pick:保留该commit(缩写:p)
reword:保留该commit,但我需要修改该commit的注释(缩写:r)
edit:保留该commit, 但我要停下来修改该提交(不仅仅修改注释)(缩写:e)
squash:将该commit和前一个commit合并(缩写:s)
fixup:将该commit和前一个commit合并,但我不要保留该提交的注释信息(缩写:f)
exec:执行shell命令(缩写:x)
drop:我要丢弃该commit(缩写:d)

推送某一次的提交到远端
git push origin b6583f5ec95e34e6c135a6488a16c83cd48abe04:yijian20210831

3、开发完成分支合并到测试分支 (将某一次提交直接更新到当前分支)
git cherry-pick xxxcommit

4、推送远端分支
git push origin ns_ci_int_qa


git log : 查看历史的提交记录
git reflog: 查看所有的操作记录
git log --pretty=oneline --abbrev-commit:以一行的形式查看提交记录

git reset和git revert都是属于重新恢复工作区以及远程提交的方式;
git reset是将之前的提交记录全部抹去,将 HEAD 指向自己重置的提交记录,对应的提交记录都不复存在;
git revert 操作是将选择的某一次提交记录 重做,若之后又有提交,提交记录还存在,只是将指定提交的代码给清除掉。

git reset --hard HEAD~n : 切换到某一次的提交
git diff HEAD – fileName :查看工作区和版本库最新版本的区别
git restore --staged fileName :撤销已经add的文件
git reset HEAD :把暂存区的修改撤销掉,重新放回工作区

执行commit后,还没执行push时,想要撤销这次的commit:
git reset --soft HEAD^ : 不删除工作空间的改动代码 ,撤销commit,不撤销git add file
git reset --hard HEAD^ : 删除工作空间的改动代码,撤销commit且撤销add
git reset --mixed HEAD^: 不删除工作空间改动代码,撤销commit,而且撤销git add .
如果commit注释写错了,先要改一下注释:
git commit --amend

git revert:撤回某一次的提交
git revert -n HEAD^ : 撤回上一次的提交内容
git revert -n HEAD~n:撤回前n次的提交内容

git branch :查看分支
git branch --v : 查看本地和远端所有的分支
git fetch :同步远端分支到本地
git branch :创建分支
git checkout -b 或 git switch -c :创建+切换分支
git merge :合并某分支到当前分支
git branch -d :删除分支
git branch -D 强行删除一个分支

get remote -v :查看远程库信息
本地新建的分支如果不推送到远程,对其他人就是不可见的
从本地推送分支,使用git push origin branch-name,如果推送失败,先用git pull抓取远程的新提交
在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name,本地和远程分支的名称最好一致;
建立本地分支和远程分支的关联:
git branch --set-upstream branch-name origin/branch-name

git stash save : 将本地的修改暂时保存起来
git stash pop :将本地修改恢复

git rebase
rebase操作可以把本地未push的分叉提交历史整理成直线;
rebase的目的是使得我们在查看历史提交的变化时更容易,因为分叉的提交需要三方对比。

tag:给commit 打一个标签。是版本库的一个快照,指向某个commit指针
目的:为了方便记录版本号
注意:标签不是按时间顺序列出,而是按字母排序的

1、需要切换到打标签的分支:
git tag : 默认给最新的commit打一个标签
git tag :查看所有的标签
git show : 查看某一个标签的信息
git tag -a <标签名> -m “说明文字” :指定标签信息

2、推送本地标签
git push origin :推送一个本地标签
git push origin --tags:可以推送全部未推送过的本地标签
git tag -d :可以删除一个本地标点
git push origin :refs/tags/:删除一个远程标签


git config --global color.ui true : 让git 显示颜色


gitk --all &:调出gui版本界面

git branch -r:查看远程仓库的分支
git branch -a:查看本地和远程仓库的所有分支
git branch:显示本地分支
git branch -D xxx:强制删除分支,删错分支恢复可用git log -g查看日志,并用git checkout -b new_branch [comment id]检出

git reset --hard e377f6:回滚到指定的版本

git checkout test:切换到test本地分支
git checkout -b test:从当前分支创建新分支test并切换
git checkout -b test origin/develop:从远程分支develop创建新本地分支test并检出
git checkout -b test 3bba6300fca54ec5dab8dc3b0d1e301dc84d00a0 从某次提交创建新分支test并检出

git fetch --all -p:每次操作前都要更新 拉下来看其他人更新,不会合并代码

git add [file1] [file2] … :添加一个或多个文件到暂存区
git add . :添加当前目录下的所有文件到暂存区

git commit:直接提交
git commit -m “提交描述”:同一功能第一次提交时用
git commit -a -m “提交描述”:相当于git add . 和git commit -m
git commit --amend:同一功能第二次以上提交时用 “提交描述 v2”(有时你提交过代码之后,发现一个地方改错了,你下次提交时不想保留上一次的记录;或者你上一次的commit message的描述有误,这时候你可以使用接下来的这个命令)

git merge [name]:将名称为[name]的分支与当前分支合并 不用
git merge --abort:回到合并前的状态
git cherry-pick 3f6858325334b608cdc7cce4dbe531f70b20953c:从这次提交合并到当前分支上 (一般只合并自己,合并单次提交记录)
git cherry-pick 23423232(开)…839993903(闭):区间合并
git cherry-pick --abort:取消上次操作

git rebase 73e04e61cc86e54bd0c8cc38f070bc576093af26:把某个分支的修改合并到当前分支(合并多次的提交记录到当前分支,记录在当前分支下面)

git rebase --continue:在rebase的过程中,也许会出现冲突(conflict). 在这种情况,Git会停止rebase并会让你去解决 冲突;在解决完冲突后,用"git-add"命令去更新这些内容的索引(index), 然后,你无需执行 git-commit,只要执行:git rebase --continue
git rebase --abort:回到git rebase合并前的状态

git push origin :ns_ci_int_qa:删除远程仓库的ns_ci_int_qa分支
git push origin test:ns_ci_int_qa: 推送本地的test(冒号前面的)分支到远程origin的ns_ci_int_qa(冒号后面的)分支(没有会自动创建)
git push --force:强制推送提交

需求背景
需要将本地master分支的内容上传到远程的dev分支。

解决方法
这种时候一般可分为两种情况,一种是dev分支在远程已经存在了,我们只需要把本地的内容push上去。另一种是dev分支在远程还没有被创建,我们需要在本地给远程创建dev分支,并把本地内容push上去。下面将分别进行描述。

  1. 远程dev分支已经存在

(1)远程分支不一定能在本地被搜索到,当通过命令:$ git branch -a 查看不到远程dev分支时,可以通过命令:$ git fetch 进行刷新,然后再通过 $ git branch -a ,就可以看到远程分支了。
(2)通过命令: $ git branch -u origin/dev 将本地当前分支(目前为master)与远程库origin/dev分支进行关联绑定,
(3)通过命令: $ git push --set-upstream origin master 将本地master分支的内容上传到远程dev分支。由于两个分支不同名,–set-upstream 参数不可省略,当然可以通过命令: $ git config --global push.default upstream 将push的默认方式改为upstream,这样以后push时就不用再输入参数–set-upstream。

  1. 远程dev分支还没有创建

(1)这种情况可以在push的同时创建远程dev分支,并把本地master的内容上传上去。可通过命令:$ git push -u --set-upstream origin master:dev ,表示把本地master分支提交到远程dev分支,第一次运行时加上参数-u,表示把本地master分支与远程dev分支关联起来,效果与 $ git branch -u origin/dev 一样。

撤销本地分支与远程分支的关系
git branch --unset-upstream

当我想从远程仓库里拉取一条本地不存在的分支时:
git checkout -b 本地分支名 origin/远程分支名

或者指定分支的名字clone:
git clone -b 分支名 项目地址

更新远端地址:
git remote set-url origin 远端地址

失误操作
1、使用git fsck --lost-found命令查找未提交而被删除的记录
2、使用git show+数字(查找的删除记录编号),确认需要恢复的内容
3、使用git merge+数字(查找的删除记录编号),合并被删除的记录

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值