• git 命令小总结


    下载代码

    git clone http://admin@192.168.0.208:7990/scm/klvchen/tale.git
    

    设置用默认户名和密码登录,注意 URI 前面不允许有 http, 后面不允许有端口

    vi ~/.netrc
    
    machine 192.168.0.208
    login   admin
    password klvchen123456
    

    使用 git 指令显示其 url 地址

    git remote -v
    

    查看本地分支

    git branch 
    

    创建本地分支 bugfix,切换到 bugfix 分支

    # 方法 一
    git branch bugfix
    git checkout bugfix
    
    # 方法 二
    git checkout -b bugfix
    

    查看远程所有分支

    git branch -r 
    

    关联远程的 dev 分支,在本地起名为 dev 分支,并切换到本地的dev分支上

    git checkout -b dev origin/dev
    

    推送远程分支

    git push origin dev
    

    克隆远程仓库中的指定分支 (git clone 默认是克隆 master 主分支)

    # git clone -b <指定分支名> <远程仓库地址>
    git clone -b development http://klvchen@b.klvchen.com/scm/next/product.git
    

    查看所有的分支

    git branch -a 
    

    切换分支

    git checkout master
    

    删除分支

    git branch -d dev
    

    操作标签

    git branch
    * master
    

    给当前分支打 tag

    git tag rls_20170208
    

    查看所有 tag

    git tag
    
    # 显示注解
    git tag -n 
    

    把标签推送到远端

    git push origin rls_20170208
    

    切换标签

    git checkout rls_20170208
    

    删除本地 tag

    git tag -d ibacxx_test_20170210172424
    

    查看远程的 tags

    git ls-remote
    

    删除远端 tag

    git push origin :refs/tags/ibacxx_test_20170210172424
    git push origin :ibacxx_test_20170210175756
    
    # 说明
    # origin 是远程主机名
    # git push <远程主机名> <本地分支名>:<远程分支名>, 如果 : 前为空,则是用空的分支覆盖远端的分支
    

    下载最新代码

    git pull
    
    git add -A   保存所有的修改
    
    git add .    保存新的添加和修改,但是不包括删除
    
    git add -u   保存修改和删除,但是不包括新建文件。
    

    HEAD 是一个对当前检出记录的符号引用 —— 也就是指向你正在其基础上进行工作的提交记录。

    # 查看 HEAD
    cat .git/HEAD , 
    
    # 如果 HEAD 指向的是一个引用,还可用查看它的指向
    git symbolic-ref HEAD 
    

    撤销变更

    git reset  # 通过把分支记录回退几个提交记录来实现撤销改动。(本地)
    eg: git reset HEAD~1
    
    git revert # 撤销更改并分享给别人(远程)
    eg: git revert HEAD
    

    git cherry-pick

    # 选择某一个分支中的一个或几个commit(s)来进行操作(操作的对象是commit)。
    # 使用方法如下:
    git cherry-pick <commit id>
    
    #查询commit id 的查询可以使用git log查询(查询版本的历史),最简单的语法如下:
    git log 
    

    git rebase

    Rebase 实际上就是取出一系列的提交记录,“复制”它们,然后在另外一个地方逐个的放下去。
    Rebase 的优势就是可以创造更线性的提交历史,这听上去有些难以理解。如果只允许使用 Rebase 的话,代码库的提交历史将会变得异常清晰。
    
    eg: 合并 Bugfix 分支
    git checkout Bugfix
    git rebase master
    git checkout master 
    git rebase Bugfix
    
    or
    git checkout Bugfix
    git rebase master
    git rebase bugFix master
    

    返回到某个节点(把自行新建的文件删掉)

    git clean -df
    

    git push 加了参数-u后,以后即可直接用 git push 代替 git push origin master

    git push -u origin master 
    

    git fetch

    # 与git pull相比git fetch相当于是从远程获取最新版本到本地,但不会自动merge。如果需要有选择的合并git fetch是更好的选择。
    # git fetch <远程主机名> <分支名>
    git fetch origin master
    # 取回的更新,在本地主机上要用"远程主机名/分支名"的形式读取。比如origin主机的master,就要用origin/master读取;
    

    常见问题

    1.error: The following untracked working tree files would be overwritten by checkout
    是由于一些untracked working tree files引起的问题。所以只要解决了这些untracked的文件就能解决这个问题。
    解决方式:

    git clean -d -fx
    
    参数说明:
    -n 显示将要删除的文件和目录;
    -x 删除忽略文件已经对git来说不识别的文件
    -d 删除未被添加到git的路径中的文件
    -f 强制运行
    

    2.error: Your local changes to the following files would be overwritten by merge

    # 方法一: stash
    git stash
    git commit
    git stash pop
    
    接下来diff一下此文件看看自动合并的情况,并作出相应修改。
    git stash:       备份当前的工作区的内容,从最近的一次提交中读取相关内容,让工作区保证和上次提交的内容一致。同时,将当前的工作区内容保存到 Git 栈中。
    git stash pop:   从 Git 栈中读取最近一次保存的内容,恢复工作区的相关内容。由于可能存在多个 Stash 的内容,所以用栈来管理,pop 会从最近的一个 stash 中读取内容并恢复。
    git stash list:  显示 Git 栈内的所有备份,可以利用这个列表来决定从那个地方恢复。
    git stash clear: 清空 Git 栈。此时使用 gitg 等图形化工具会发现,原来 stash 的哪些节点都消失了。
    
    # 方法二: 放弃本地修改,直接覆盖
    git reset --hard
    git pull
    
    该方法小心操作,恢复参考:https://www.jianshu.com/p/390b6861b8c7
    
  • 相关阅读:
    将博客搬至CSDN
    ELK环境搭建(ElasticSearch、Logstash 、Kibana)
    Linux 安装Jdk(保姆级教程)
    从头到尾再说一次 Java 垃圾回收
    Exchange 2013学习笔记二十一:传输规则
    Exchange 2013学习笔记二十:电子邮件地址策略
    Exchange 2013学习笔记十九:证书管理
    Exchange 2013学习笔记十八:ECP设置
    Exchange 2013学习笔记十七:OWA设置
    Exchange 2013学习笔记十六:公用文件夹
  • 原文地址:https://www.cnblogs.com/klvchen/p/9516442.html
Copyright © 2020-2023  润新知