zoukankan      html  css  js  c++  java
  • Git和Gitlab在使用过程中所遇到的问题

    01-关于gitLab添加ssh key后,git clone还提示输入密码问题

    本地用户连接远程仓库需要用 HTTP方式连接,SSH方式会出现提示输入密码
    
    git clone http://.......

    02-生成ssh公钥和私钥对

    # 命令
    
    ssh-keygen -t rsa -C '邮箱'
    
    cat ~/.ssh/id_rsa.pub
    
    参考文档:https://www.cnblogs.com/hafiz/p/8146324.html

    03-配置git本地仓库的账号邮箱

    git config --global user.name 'xxx'
    
    git config --global user.email 'xxx@163.com'

    04-查看当前远程服务器地址

    git remote -v

    05-git实际案例分析

    https://www.cnblogs.com/smuxiaolei/p/7484678.html

    06-Git新建分支出现fatal: Not a valid object name: 'master'错误

    原因是没有提交一个对象,要先commit之后才会真正建立master分支,此时才可以建立其它分支。

    07-如何去解决fatal: refusing to merge unrelated histories

    08-Branch 'dev' set up to track remote branch 'dev' from 'origin'.

    原因是没有指定本地dev分支与远程dev分支的链接。
    
    # 解决方法:
    
    git branch --set-upstream dev origin/dev

     09-git报错:Pull is not possible because you have unmerged files解决

      本地的push和merge会形成MERGE-HEAD(FETCH-HEAD), HEAD(PUSH-HEAD)这样的引用。HEAD代表本地最近成功push后形成的引用。MERGE-HEAD表示成功pull后形成的引用。可以通过MERGE-HEAD或者HEAD来实现类型与svn revet的效果。

    # 解决方法:
    
    1.将本地的冲突文件冲掉,不仅需要reset到MERGE-HEAD或者HEAD,还需要–hard。没有后面的hard,不会冲掉本地工作区。只会冲掉stage区。
    
    # 执行命令
    git reset –hard FETCH_HEAD
    
    2.再进行 git pull 就会成功。

    10-合并dev分支的代码流程

    # 切换到 master 分支
    git checkout master
    
    # 合并dev分支代码
    git merge dev
    
    如果出现:warning: Cannot merge binary files: apps/restful_api/__pycache__/parts_view.cpython-37.pyc (HEAD vs. dev)
    
    # 就执行下面的
    git add .
    git commit -m ''
    git push origin master
    
    如果没有遇到二进制文件冲突,就直接执行 git push
    git push origin master

     

    11-git 出现 |MERGING的解决方法

    # 回滚到提交之前的状态
    
    git reset --hard HARD

    12-Git-命令行-拯救“Your local changes to the following files would be overwritten by checkout”

    情况一:未跟踪文件的内容改动很重要,保存修改
    方式一:放到暂存区
        # 先查看状态
        git status
    
        # 
        git add .
    
        # 放到暂存区
        git stash
    
        # 取出的时候使用
        git stash pop
    
    方式二: 发起一个commit 存到提交历史
    git add.
    git commit -m "commit message"
    
    情况二:未跟踪文件的内容改动不重要,放弃修改
        有两种办法,清除修改和强制切换分支
    推荐做法:清除未跟踪文件
    git clean n  //这个是清除文件预览
    git clean -f //强制清除文件
    
    强制切换分支
    强制切换分支命令如下,结果同提示说的那样,会直接覆盖未跟踪的文件。这个方式我觉得很是粗暴,我们日常切换的时候,还是不要使用 -f 强制切换,没有覆盖提示,很容易发生文件修改丢失,但是我们自己不知道。
    
    git checkout -f dev

    13- 报错

     14-git提交时候报错:The file will have its original line endings in your working directory.

    错误描述
    在使用git提交的时候出现The file will have its original line endings in your working directory.错误,后来发现 自己再提交的时候忘记输入git add 上传的文件 出现了上面的错误,需要下面进行修改:
    
    1. git rm -r -f --cached ./ (删除缓存)
    
    2. git config --global core.autocrlf false
    原因是路径中存在 / 的符号转义问题,false就是不转换符号默认是true,相当于把路径的 / 符号进行转义,这样添加的时候就有问题
    
    3. git add . (添加该目录下所有文件)
    
    4. git push -u origin master (这时候提交就没问题了)
    
    初次提交的命令
    git init
    git add README.md
    git commit -m "first commit"
    git remote add origin git@github.com:xxxx.git
    git push -u origin master

     15-git pull报错:error: Your local changes to the following files would be overwritten by merge:.idea/workspace.xml

    方法1:
    git stash  
    git pull origin master  
    git stash pop
    然后可以使用git diff -w +文件名 来确认代码自动合并的情况. 方法2:既然不想保留本地的修改,那好办。直接将本地的状态恢复到上一个commit id 。然后用远程的代码直接覆盖本地就好了。 git reset
    --hard git pull origin master
  • 相关阅读:
    0.3 CMD常用命令!以及用CMD显得自己高大上
    1.0 配置JAVA环境和Maven环境(W10注意点)
    2.1 Oracle之DML的SQL语句之单表查询以及函数
    hBase
    2.0 flume、sqoop、oozie/Azkaban
    Hive
    MapReduce和yarn
    HDFS
    1.0 Hadoop的介绍、搭建、环境
    asp.net core系列 43 Web应用 Session分布式存储(in memory与Redis)
  • 原文地址:https://www.cnblogs.com/pgxpython/p/10156312.html
Copyright © 2011-2022 走看看