zoukankan      html  css  js  c++  java
  • git 一些提交等用法

    从服务器上下载项目到em_cesium:git clone ssh://kjwang@code-bj.clustertech.com:29418/em-satdata em_cesium

    在本地新建一个branch分支cesium:git branch cesium

    查看所有本地的branch:git branch

    使用新建的分支:git checkout cesium

    就是把新建的分支连到服务器的origin/cesium上:git branch --track cesium origin/cesium

    删除本地的branch:git branch -d cesium其中-D是强制删除

    修改完的项目文件要先add到本地的branch上 :git add [filename]/-A就是add所有的更改,添加等对项目的修改

    然后在commit: git commit (如果你的上次提交的代码还没有被审核通过那么就用git commit --amend)

    提交git push origin HEAD:refs/for/cesium

    最后切回到cesium分支上:git branch cesium 

    把提交的更新拉回来 :git pull

    1、git撤销本地修改

    2、git回退到前n个版本

    如下为向前回退3个版本,git reset –hard HEAD~3

    3、git多用户提交冲突一

    场景:用户UserA修改了文件File1,用户UserB也修改了文件File1并成功merge到了服务器上,而UserA和UserB改动了同一个代码块,当UserA拉取代码时git无法merge此改动,就会出现如下错误提示,
    error: Your local changes to the following files would be overwritten by merge: cn/trinea/appsearch/MainActivity.java
    Please, commit your changes or stash them before you can merge.
    这时
    (1) 如果希望保存本地改动并拉下最新服务器代码,手动merge,使用命令如下:

    其中git stash表示备份当前工作区内容到git栈中,并使当前工作区内容与上次提交时一致,然后git pull拉取最新代码,git stash pop表示从Git栈中读取最近一次保存的内容,恢复工作区的相关内容,最后git diff表示手动merge你之前冲突的文件

    (2) 如果希望服务器上版本完全覆盖本地修改,使用如下命令回退并更新:

    4、git多用户提交冲突二
    场景:用户UserA提交了change A,没有merge,之后用户UserB提交了change B,merge成功。当merge change A时出错,会提示,

    The change could not be merged due to a path conflict.
    Please rebase the change locally and upload the rebased commit for review.

    大多数人的解决方式都是拷贝改动代码,并重拉最新代码Beyond Compare,重新提交。其实几条命令就可以搞定,gerrit上先abandon原来的提交,后执行如下命令:

    其中git reset –hard HEAD~2表示本地代码后退两级,如果有问题可以多后退几次

    git pull表示拉最新代码
    git fetch 表示获取之前没merge成功的改动到本地,后面跟的具体地址为gerrit上该change review页面选择cherry-pick、ssh后的地址,如下图红线标识

    git fetch
    git push 跟平时push一样

    5、git命令简化

    (1) 简化git push命令

    通常git push命令为git push gerrit:aaa HEAD:refs/for/bbb,其实可简化为git push。
    编辑git库下的.git/config文件,在[remote "remoteName"]下添加两行

    以后提交只需要用git push即可。

    (2) 简化git add *;git commit -a;git push命令,一步完成添加、commit、push

    第(1)步配好后,你还可以将命令git add *;git commit -a;git push添加别名到系统path中,如下操作:
    vim ~/.bash_profile,文件最后添加

    source ~/.bash_profile

    这样以后只需要gpush即可完成添加、commit、push,当然你也可以取其他的别名如gp、gitpush、gitp。

  • 相关阅读:
    BootStrap行内编辑
    NPOI学习笔记
    仅当使用了列列表并且 IDENTITY_INSERT 为 ON 时,才能为表'Address'中的标识列指
    .Net MVC发布出错 Server Error in '/' Application.
    C# 新特性
    System.Runtime.InteropServices.COMException:“服务器出现意外情况。 (异常来自
    BootStrap的表格加载json数据,并且可以搜索,选择
    NPOI导入导出Excel
    读取Easy UI的DATa grid里面的所有数据
    C# 导出Excel
  • 原文地址:https://www.cnblogs.com/wang985850293/p/5190287.html
Copyright © 2011-2022 走看看