Git协作工作流指南/教程 我想做的是:

Git协作工作流指南/教程 我想做的是:,git,Git,我和两个朋友一起做了一个大学项目,他们对代码做了一些修改。 我还对代码做了很多修改,其中大部分我想保留 我是git的新手,不知道从哪里开始。 我的朋友建议我使用: git pull origin 当我这样做时,我得到: error: Your local changes to the following files would be overwritten by merge: Please, commit your changes or stash them before you can me

我和两个朋友一起做了一个大学项目,他们对代码做了一些修改。 我还对代码做了很多修改,其中大部分我想保留

我是git的新手,不知道从哪里开始。 我的朋友建议我使用:

git pull origin
当我这样做时,我得到:

error: Your local changes to the following files would be overwritten by merge:
Please, commit your changes or stash them before you can merge
我在stackoverflow上读到:

如果我不将更改提交到本地存储库,它们会丢失吗

  • 您如何在本地提交
  • 我如何合并更改(有没有一种方法我可以使用超越比较请)
  • 如何上传更改
  • 谢谢

    这就是它现在的样子:

    Arthur Wulf@SUPERWOLF-PC /c/Current Project/study-wise (master|MERGING)
    $ git pull origin master
    M       .pydevproject
    U       src/app.yaml
    M       src/getters/__init__.pyc
    M       src/index.yaml
    M       src/model/ClassM.pyc
    M       src/model/CourseM.py
    M       src/model/CourseM.pyc
    M       src/model/GeneralM.pyc
    M       src/model/LectureM.py
    M       src/model/LectureM.pyc
    M       src/model/PostClassM.py
    A       src/model/PostClassM.pyc
    M       src/model/QuestionM.py
    M       src/model/QuestionM.pyc
    M       src/model/StudentM.py
    M       src/model/StudentM.pyc
    M       src/model/TopicM.py
    M       src/model/TopicM.pyc
    M       src/model/__init__.pyc
    M       src/setters/__init__.pyc
    A       src/setters/setQuestionStats.py
    D       src/setters/setRemoveOldData.py
    A       src/setters/setStartNewClass.py
    A       src/setters/setStudentAnswer.py
    D       src/setters/setTopicChanged.py
    A       src/setters/setUpdateTopicStats.py
    M       src/view/allCourses.html
    M       src/view/lecture.html
    U       src/view/prof.html
    M       src/view/question.html
    Pull is not possible because you have unmerged files.
    Please, fix them up in the work tree, and then use 'git add/rm <file>'
    as appropriate to mark resolution, or use 'git commit -a'.
    
    亚瑟Wulf@SUPERWOLF-PC/c/当前项目/研究(硕士|合并) $git拉原点主控 M.pydevproject U src/app.yaml M src/getters/_init__.pyc M src/index.yaml M src/model/ClassM.pyc M src/model/CourseM.py M src/model/CourseM.pyc M src/model/GeneralM.pyc M src/model/tem.py M src/model/documentem.pyc M src/model/PostClassM.py A src/model/PostClassM.pyc M src/model/QuestionM.py M src/model/QuestionM.pyc M src/model/StudentM.py M src/model/StudentM.pyc M src/model/TopicM.py M src/model/TopicM.pyc M src/model/\uuuu init\uuuu.pyc M src/setters/_init__.pyc A src/setters/setQuestionStats.py D src/setters/setRemoveOldData.py A src/setters/setStartNewClass.py A src/setters/setStudentAnswer.py D src/setters/setTopicChanged.py A src/setters/setUpdateTopicStats.py M src/view/allCourses.html M src/view/touch.html U src/view/prof.html M src/view/question.html 无法拉取,因为您有未合并的文件。 请在工作树中修复它们,然后使用“git add/rm” 根据需要标记解析,或使用“git commit-a”。
    我不明白的是,如何将本地端的文件与在线原始存储库端的文件进行比较并合并?

    有一本很棒的在线书籍解释了git:

    所以我更喜欢教钓鱼而不是教鱼

    git pull origin
    
    pull
    fetch
    +
    merge
    )从远程(源站)检索最新的,并将其与您的代码合并。如果您所在的分支有未限制的更改,则无法在新代码中合并。您可以使用以下方法检查分支状态:

    git status
    
    通常我会在本地提交

    git add .                          //stage all files
    git commit -a -m "local commit"    //commit all staged
    
    这是对本地回购的本地承诺。然后,您可以执行
    pull
    ,尝试将最近的提交与远程更改合并

    pull
    类似于
    commit
    ,因为
    pull
    事件记录在回购历史记录中。它将尝试合并分支中文件上的更改(我很少看到覆盖),但正如我所说的,如
    提交
    ,事件将被记录,您可以恢复

    要上载更改,可以执行
    推送
    ,其中
    远程
    是要推送的服务器的别名,存储在GIT中,
    分支
    是要推送的分支

    git push [remote] [branch]
    

    看到你们和GIT客户讨论过,我个人使用的是GIT for Windows。它有一个GUI和一个命令行。

    正确的做法是在本地提交所有更改,然后再次尝试拉取。该错误是为了保护您不丢失尚未提交的本地更改。创建提交(commit)就像创建代码的新快照,然后安全地记录该状态

    回答您的问题:

    1) 您如何在本地提交

    查看
    git status
    的输出。如果有任何列为“未跟踪文件”的文件要保存在git中,请使用
    git add…
    指示您希望在下一次提交中保存这些文件。然后查看列为“未提交的更改”的文件,这些文件是您已更改的存储库中已有的文件。您可以再次对每个文件执行
    git add…
    ,以表明您希望在准备的提交中完全使用该文件的版本。(如果对文件进行进一步修改,则必须再次添加该文件,以便为提交准备文件的新内容。)

    最后,您应该运行
    git commit
    。这将打开一个编辑器,您应该在其中输入一条有用的提交消息——当您保存该文件并退出编辑器时,应该创建提交。然后,您可以按照最初的要求运行git pull origin master

    (作为一种快捷方式,如果执行
    git commit-a
    ,则存储库中已经存在的文件的所有更改都将在提交时暂存,而无需
    git添加它们。)

    2) 我如何合并更改(有没有一种方法我可以使用超越比较请)

    您尝试的
    git pull origin master
    命令实际上做了两件事:

  • 从名为
    origin
    的远程存储库获取分支
    master
  • 将获取的分支的状态合并到当前分支中
  • git擅长避免抱怨虚假冲突,但如果您确实需要帮助来处理这些冲突,请查看
    git mergetool

    3) 如何上传更改


    您可以使用
    git push origin master

    来实现这一点,当您四处摸索时,您应该避免使用
    git pull
    ,因为它既可以执行
    提取操作(您需要),也可以执行
    合并操作(您可能不需要)

    您需要与朋友聊天,了解哪些工作流最适合您-查看git教程[
    git help tutorial
    Workson git for Windows]和git工作流[
    git help workflows
    ],当然还有(图片,尽管它可能比您需要的更高级)

    关键是我