git本地仓库关联远程仓库

本文讲述了作者将项目从SVN迁移到Git过程中遇到的问题,如未跟踪的文件冲突、首次提交及合并远程master分支时的挑战,以及如何通过stash和rebase进行有效操作以解决这些问题。
摘要由CSDN通过智能技术生成

首先,本地文件之前是svn管理,现在直接换成git,远程仓库已经有新代码和master分支

  1. 初始化 git init
  2. 关联远程仓库   git remote add origin https:....git(换成远程仓库地址)
  3. git branch -a 查看目前有哪些远程分支
  4. 拉取远程的master分支 git pull origin master     ,此时报错 error: The following untracked working tree files would be overwritten by merge:   本地有多个文件与远程仓库不一致,不能直接使用  git reset --hard HEAD 因为目前还不在哪个分支
    fatal: ambiguous argument 'HEAD': unknown revision or path not in the working tree.也不能直接使用切换分支 git checkout -b master origin/master 
    error: The following untracked working tree files would be overwritten by checkout:
            .babelrc .js   Aborting
  5. 此时先贮藏目前的差异文件  git add . 添加全部差异文件;

     $ git stash save -a  'svn' 
    You do not have the initial commit yet  

    0@DESKTOP-2RBCSD9 MINGW64 /d/newFrontProject (master)
    $ git commit
    [master (root-commit) 9ddb6f8] nit svn   (查看状态)$ git status
    On branch master
    nothing to commit, working tree clean

  6. 再次查看git branch -a并且拉取$ git pull origin master,发现出现merge conflict;(master|REBASE 1/1)
    $ git status
    interactive rebase in progress; onto 1245feb

  7. 查看所在分支会发现是rebase状态,也就不在master分支上 :

     (master|REBASE 1/1)
    $ git branch
    * (no branch, rebasing master)
      master

    0@DESKTOP-2RBCSD9 MINGW64 /d/newFrontProject/DossierSite/WebSiteForManager (master|REBASE 1/1)
    $ git reset --hard HEAD(不想直接丢弃本地差异文件可以再次使用前面步骤5进行贮藏)
    HEAD is now at 1245feb Merge #1 into master from dev1

  8. 使用rebase命令:(master|REBASE 1/1)
    $ git rebase --continue
    Successfully rebased and updated refs/heads/master.

  9. 再次拉取master分支,此时状态正常,拉取成功:

     (master)
    $ git pull origin master --rebase
    From https://
     * branch            master     -> FETCH_HEAD
    Already up to date.

  10. 查看所在分支已正常:(master)
    $ git branch
    * master (*表示目前在这个分支上)

  11. 此时直接git pull 拉取代码会提示没有关联远程分支:

     (master)
    $ git pull
    There is no tracking information for the current branch.
    Please specify which branch you want to rebase against.
    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
     

  12. 使用命令:(master)
    $ git branch --set-upstream-to=origin/master master
    提示 Branch 'master' set up to track remote branch 'master' from 'origin'.

  13. 使用 git pull正常,不需要指定分支
    Already up to date.

  • 9
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值