zoukankan      html  css  js  c++  java
  • git操作

    1.从github上clone下来的项目,再将该项目上传到git.oschina.net上

      git remote //查看远程仓库

      git remote -v //可以查看远程仓库的地址

      git remote remove <name> //移除仓库

      git remote add <name> <url> //eg:git remote add origin https://git.oschina.net/username/test.git

      git add . //添加文件

      git commit -am "first commit"

      git push -u origin

    2.撤销commit

      git log 查看提交的历史记录,记录下提交的hash值

      git reset --hard <commit_id> 即可恢复提交

    3.合并分支

      git checkout master //切换到主分支

      git merge 分支hash_id 将分支合并到当前分支

    4.git clone项目时报错

      使用ssh方式拉取项目时报错如下

    1 [root@al soft]# git clone git@gitee.com:test/test.git
    2 正克隆到 'test'...
    3 remote: Counting objects: 15055, done.
    4 remote: Compressing objects: 100% (10131/10131), done.
    5 packet_write_wait: Connection to 116.211.167.14 port 22: Broken pipe
    6 fatal: The remote end hung up unexpectedly
    7 fatal: 过早的文件结束符(EOF), 48.24 MiB | 9.83 MiB/s
    8 fatal: index-pack failed

    谷歌了好久也没找到彻底解决的办法,临时解决办法如下:

    clone前先执行如下语句

    git config --global core.compression 9
    然后执行
    git clone git@gitee.com:test/test.git

     5.git 添加了 .gitignore 文件 不生效

      Git忽略规则:

    在git中如果想忽略掉某个文件,不让这个文件提交到版本库中,可以使用修改根目录中 .gitignore 文件的方法(如果没有这个文件,则需自己手工建立此文件)。这个文件每一行保存了一个匹配的规则例如:

    # 此为注释 – 将被 Git 忽略

    *.sample    # 忽略所有 .sample 结尾的文件
    !lib.sample    # 但 lib.sample 除外
    /TODO    # 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO
    build/    # 忽略 build/ 目录下的所有文件
    doc/*.txt   # 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt

      .gitignore规则不生效的解决办法

    把某些目录或文件加入忽略规则,按照上述方法定义后发现并未生效,原因是.gitignore只能忽略那些原来没有被追踪的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。那么解决方法就是先把本地缓存删除(改变成未被追踪状态),然后再提交:

    git rm -r --cached .
    git add .
    git commit -m 'update .gitignore'
    git push

     6.当前项目存在子模块的问题

     #git add ./mailscan/*
    fatal: Pathspec './mailscan/crack_pop.py' is in submodule 'mailscan'
    
    跟踪mailscan文件夹下的文件时,提示在子模块下

    一个项目中 只有父目录下 存在一个 .git目录,但是在mailscan目录下也发现了该目录,在mailscan下,将.git目录删除

    然后执行

    git rm --cached mailscan
    git add ./mailscan/*
    git status 查看状态,发现已经提交成功

    【节点只拉取git上的项目代码】

    # mkdir rules
    # cd rules # git init # git remote add origin git@gitee.com:user
    /project.git # git pull origin master

    # 当执行 git pull的时候缺报错提示:

    There is no tracking information for the current branch.
    Please specify which branch you want to merge with.
    See git-pull(1) for details
    
    git pull <remote> <branch>
    
    If you wish to set tracking information for this branch you can do so with:
    
    git branch --set-upstream-to=origin/<branch> master  

    解决办法:

    # git branch --set-upstream master origin/master

    然后每次git pull即可

  • 相关阅读:
    java中异常的处理
    java中异常的处理
    python入门(一)
    logstash urldecode filter 插件
    logstash urlencode解码
    go get下载第三方包问题的解决
    饿了么这样跳过Redis Cluster遇到的“坑”
    Installation Guide 安装指南
    python pip 切换到阿里云 镜像
    守得云开见月明:一次ASM存储高可用故障解决过程分析
  • 原文地址:https://www.cnblogs.com/Kevin-1967/p/7425020.html
Copyright © 2011-2022 走看看