git 简单使用说明

  1. 从远程仓库拉去代码
  • git clone https://xxxx@localhost:8443/r/valve/project.git
  • git remote add origin https://xxxx@localhost:8443/r/valve/project.git
  • git status # 查看本地仓库的修改状态
  • git add # 暂存文件
  • git commit -m '备注新兴县'   # 提交文件
  • git push origin master  #将本地代码提交到远程
  1. 分支使用说明
  • git checkout -b develop    # 从当前分支创建一个分支到本地
  • git checkout -b dev origin/dev   #基于远程分支创建本地分支  origin/dev 地址
  • git checkout develop   #切换到develop分支
  • git branch -a     #查看项目中所有的分支
  • git branch -vv   #查看本地和远程分支关联关系
  • git remote show origin   #查看详细的本地和远程分支关联关系
  • git remote prune origin   #删除本地存在的分支名,远程已经删除的分支
  • git push origin develop  #将develop提交到远程服务器
  • git branch -d develop #删除本地分支
  • git branch -D local_branch_name  #强制删除当前本地分支
  • git push origin :develop  #推送一个空分支到远程分支,相当于删除远程分支
  • git push origin  --delete dev #删除远程分支
  • git branch -m dev(原分支名称) develop #重命名本地分支 ,其实就是先删除远程分支,然后重命名本地分支,再重新提交一个远程分支。
  • git push origin local_branch_name:remote_branch_name  推送一个远程不存在的分支
  • git push origin develop #推送本地分支
  • git pull origin develop   #拉去远程代码并合并与工作空间代码合并(fetch + meger)
  • git fetch  origin develop  #拉去远程仓库代码到本地仓库(不是工作空间) 
  • git rebase origin develop  #将fetch 拉取的远程代码和工作空间的代码合并,合并没有冲突系统自动执行git commit命令,合并代码后有冲突解决。
  • git add .   #手动解决冲突后提交代码
  • git rebase --continue    #提交代码后执行  rebase --continue 命令继续执行完上一次rebase未完成的操作。
  • git rebase --skip    #git rebase 起冲突后,发现冲突可以不用解决,执行该命令跳过本次修改直接算rebase合并成功
  • git rebase --abort    #git rebase起冲突,退回原来的状态,本地工作空间和远程代码度保持不变
  • git merge origin develop #直接合并到本地工作空间,有冲突需要手动解决,然后在手动提交
  1. git stash 可用来暂存当前正在进行的工作, 比如想pull 最新代码, 又不想加新commit, 或者另外一种情况,为了fix 一个紧急的bug,  先stash, 使返回到自己上一个commit, 改完bug之后再stash pop, 继续原来的工作。
  • git stash 暂存当前正在进行的工作,将当前工作代码放入到栈中,可以拉去最新代码以便合并
  • git stash list  查看栈中放入了多少次
  • git stash apply stash@{1}  取出指定版本栈存的代码
  • git stash pop 取出栈中最近的版本,没获取一次栈中就减少一个
  • git stash clear 清空stash中版本代码
  1. tag 使用
  • git tag     # 在控制台打印出当前仓库的所有标签
  • git tag -l ‘v0.1.*’     # 搜索符合模式的标签
  • git show v0.1.2         #查看分支详情
  • git tag v0.1.2-light     # 创建轻量标签
  • git tag -a v0.1.2 -m “0.1.2版本”     #创建附注标签
  • git tag -d v0.1.2    # 删除本地标签
  • git push origin :refs/tags/<tagname>      #删除远程分支
  • git tag -a v0.1.1 9fbc3d0  # 补打标签,通过git log 获取 head信息
  • git branch <new-branch-name> <tag-name> 会根据tag创建新的分支.
  • git checkout  v0.1.2    #切换到tag上
  • git push origin v0.1.2     # 将v0.1.2标签提交到git服务器
  • git push origin –tags # 将本地所有标签一次性提交到git服务器
  1. git 查看日志、撤销等操作
  • git log   #查看日志
  • git relog   #查看操作命令日志
  • git reset --hard commit_id    # commit_id 提交的id,HEAD当前版本,上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。

git revert 撤销 某次操作,此次操作之前和之后的commit和history都会保留,并且把这次撤销

作为一次最新的提交

* git revert HEAD 撤销前一次 commit

* git revert HEAD^ 撤销前前一次 commit

* git revert commit (比如:fa042ce57ebbe5bb9c8db709f719cec2c58ee7ff)撤销指定的版本,撤销也会作为一次提交进行保存。

git revert是提交一个新的版本,将需要revert的版本的内容再反向修改回去,

版本会递增,不影响之前提交的内容

 

git revert 和 git reset的区别

1. git revert是用一次新的commit来回滚之前的commit,git reset是直接删除指定的commit。

2. 在回滚这一操作上看,效果差不多。但是在日后继续merge以前的老版本时有区别。因为git revert是用一次逆向的commit“中和”之前的提交,因此日后合并老的branch时,导致这部分改变不会再次出现,但是git reset是之间把某些commit在某个branch上删除,因而和老的branch再次merge时,这些被回滚的commit应该还会被引入。

3. git reset 是把HEAD向后移动了一下,而git revert是HEAD继续前进,只是新的commit的内容和要revert的内容正好相反,能够抵消要被revert的内容。

 

转载于:https://my.oschina.net/u/171572/blog/1539378

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值