찾다

 >  Q&A  >  본문

Git协作开发提交合并问题

两个人开发一个项目,用的Git做版本控制,两个人同时都有代码要提交到已有的远端仓库里面,这个步骤应该是怎样的呢?

例如下面一个场景该如何处理?(只用了一个分支master)

开发人员1:git clone ...
开发人员2:git clone ...
开发人员1:编码...
开发人员2:编码...
开发人员1:git add -> git commit -> git push (ok)
开发人员2:git add -> git commit -> git push (失败!)

当一个人push成功后,另一个人再push就不可以了。 现在我们的处理办法是,开发人员2重新Clone一次,手动增加代码,再提交,push。但是这样做太麻烦了,正确的做法应该是怎样呢?

PHP中文网PHP中文网2809일 전733

모든 응답(5)나는 대답할 것이다

  • PHPz

    PHPz2017-04-22 09:01:27

    클론은 이후 개발에 참여하는 모든 사람을 위한 일회성 사용입니다.

    • 코드 수정
    • git 추가, git 커밋
    • git push

    git push가 실패한 경우:

    • git pull
    • 변경 사항을 자동으로 병합합니다. 자동으로 병합할 수 없는 경우 수동으로 병합한 다음 git coomit
    • git push

    이 책 추천: http://git-scm.com/book/zh

    회신하다
    0
  • 巴扎黑

    巴扎黑2017-04-22 09:01:27

    위 문제는 git pull이나 git fetch을 사용하면 해결 가능하다. 뛰어난 Git 브랜치 모델 방법론인 Git Flow를 사용하는 것이 좋습니다. 이 규칙 세트를 완전히 준수하면 일반적인 문제를 방지하고 원활한 개발 경험을 얻을 수 있습니다. 이는 모범 사례

    라고 할 수 있습니다.

    github: https://github.com/nvie/gitflow

    관련 기사: git-flow 연습 시작하기 http://www.jeffkit.info/2010/12/842/
    Git 흐름 개발 프로세스 http://ihower.tw/blog/archives/5140/
    http://nvie.com/posts/a-successful-git-branching-model/
    Git 브랜치 관리 전략 http://www.ruanyifeng.com/blog/2012/07/git.html
    git 흐름 및 github 흐름 http://hoopo.writings.io/articles/fe2b0791

    회신하다
    0
  • 高洛峰

    高洛峰2017-04-22 09:01:27

    당신의 접근 방식의 단점 두 가지를 말해 보세요.
    1. 마스터 버전은 하나만 있습니다. 일반적으로 마스터 버전과 작업 버전의 두 가지 버전이 있습니다. 마스터 버전은 정식 버전과 동일하며, 기본적으로 업데이트될 때마다 수십 개의 파일이 함께 업데이트됩니다. Work 버전은 테스트 버전과 동일하며, 하루에 20번씩 업데이트되는 것이 정상입니다.
    2. A, B 두 사람이 동시에 질문을 제출했다고 했는데요. 정상적인 상황에서는 a를 제출해야 하며 b는 a의 제출물을 병합(병합)하고 먼저 프로젝트가 로컬에서 정상적으로 작동할 수 있는지 테스트한 다음 마지막으로 b를 제출합니다.
    두 번째 포인트는 git의 영혼인데, 많은 사람들이 익숙하지 않은 부분이기도 합니다. git 디자인의 가장 큰 이점은 제출된 모든 버전이 실행 가능하도록 보장하므로 특정 버전을 삭제하더라도 전체 업데이트 라인에 문제가 발생하지 않는다는 것입니다. 왜냐하면 향후 버전도 계속 실행될 수 있기 때문입니다.
    따라서 git을 사용하기 위한 기본 전제 조건이 있습니다. 즉, 모든 사람이 제출한 버전이 자신의 컴퓨터에서 올바르게 실행되어야 합니다. 여기서 제가 말하는 올바른 실행에 대해서는 제가 수정한 코드뿐만 아니라 다른 사람의 업데이트를 병합한 코드도 포함됩니다. 즉, 모든 제출은 실제로 무결성 테스트입니다. 개발하는 사람이라면 모든 프로젝트에 초기 환경 구성이 필수적이라는 것을 알고 있습니다. 개발 중에 프로젝트를 실행할 수 없다면 기본적으로 코드를 수정할 필요가 없습니다. 따라서 프로젝트의 무결성을 유지하는 것이 매우 필요합니다.

    회신하다
    0
  • PHP中文网

    PHP中文网2017-04-22 09:01:27

    개발자 1: git add -> git commit -> git push(확인)

    개발자 2: git add -> git commit -> git pull Origin master -> git commit -a -m 'merge'->

    회신하다
    0
  • 天蓬老师

    天蓬老师2017-04-22 09:01:27

    두 사람은 git의 가장 기본적인 프로세스도 모르고, 문제가 발생했을 때 git에서 표시하는 오류 메시지를 어떻게 읽는지도 모릅니다. 애초에 git을 사용하기로 선택한 이유는 무엇입니까? ? 당신은 군중을 따르고 있습니까?

    회신하다
    0
  • 취소회신하다