sourceTree+gerrit 관리 코드

4270 단어
gerrit를 처음 접하면 이런 코드 관리 방식에 대해 매우 배척할 수 있다. 특히 소스트리와git를 결합하여 코드 관리를 하는 것에 익숙해진 학생들은 그렇다.불쾌한 것은 불쾌한 것이고 코드는 또 써야 한다. 우리의 목표는 개발 과정을 상쾌하게 하는 것이다.
gerrit에 대한 지식은 [Gerrit] Gerrit 작업 절차 및 사용 안내서
익숙하지 않은 학생은 위의 문장을 보고 나서 계속 공부한다.
우리가 직면한 문제는 주로 다음과 같다.
1 코드를 처음 추출하기 전에 로컬git 환경을 설정해야 합니다
1 sourceTree의 일부 기능을 사용할 수 없어 불편하다.예를 들면 바로push가 안 돼요.
2 코드를 제출하는 과정에서 충돌하면gerrit는merger에게 기본적으로 권한을 주지 않습니다.어떻게 처리합니까?
 
첫git 설정
1 Git 사용자 이름 및 메일박스 설정
 
$git config --global user.name tao.wang

 
$git config --global user.email [email protected] 

2 검증
$git config --global user.name 
 // tao.wang

$git config --global user.email [email protected] // [email protected]

3 SSH Key 개인 키를 만들고 gerrit을 업로드합니다.이 절차는 모두가 잘 알고 있다.모르는 구글.
4 로컬gerrit 구성
이전에 생성된.ssh 폴더에 config 파일을 만들거나 설정된 config 파일을 직접 복사합니다. config 파일 내용 (사용자 이름이 자신의 계정 이름으로 바뀌는 것을 주의하십시오.port 포트는 기본적으로 29418입니다. 일부 회사는 사용 가능한 포트를 바꾸는 것을 주의하십시오.)
host gitserver hostname 172.16.99.xx 
user tao.wang
port 29418  

host gerrit 
hostname 172.16.99.xx 
user tao.wang
port 29418
KexAlgorithms +diffie-hellman-group1-sha1 

 
2. 소스 트리와gerrit
주요 문제는 sourceTree 왼쪽 상단에서push를 직접 할 수 없다는 것이다. 우리는 터미널에서 조작해야 하고 사용할 수 없다
git push origin master

 
왜 그런 걸까요?[Gerrit] Gerrit 작업 프로세스와 사용 매뉴얼을 보면 알 수 있듯이gerrit는codereview의 프로세스를 추가했습니다.그래서 임시 지점에 의존할 것입니다. 코드를 제출하려면 임시 지점에 제출해야 합니다.
따라서 다음 명령을 사용하여 코드를 추출합니다.
git push origin HEAD:refs/for/master

하지만!어떤 학우들은 소스트리를 즐겨 쓴다. 예쁘고 강해서 갑자기push 코드를 사용할 수 없어서 매우 당황한다!
이 문제를 해결하기 위해 인터넷에서 많은 댓글을 보았는데 그 중에서 Stack Overflow에 있는 이 댓글의 답이 가장 정확합니다.https://stackoverflow.com/questions/9917645/push-to-gerrit-using-sourcetree.
그러나 실천은 첫 번째 방안을 사용할 수 없다는 것을 증명한다.바로... 이다
git config remote.origin.push refs/heads/*:refs/for/*

config 파일을 수정했습니다. 잘못되었습니다!
두 번째는 사용자 정의 조작을 만들고 스크립트를 실행하며 스크립트가 정확한push를 만드는 것입니다.사실이 증명하기에 좋다!
1 xcode를 사용하여 셸 스크립트를 만듭니다. 내용은 다음과 같습니다.
#!/bin/sh

#  push.sh
#  KeepRunning
#
#  Created by    on 2018/4/27.
#  Copyright © 2018  niujinfeng. All rights reserved.

#        
branch=`git symbolic-ref --short -q HEAD`
# push review
git push origin HEAD:refs/for/${branch}

 
2 sourceTree에서 사용자 정의 조작을 만듭니다. 설정은 다음과 같습니다. 매개 변수 표시줄은 스크립트가 있는 경로입니다. 정확한 경로를 바꾸십시오.
3 그리고push를 할 때 오른쪽 상단push를 선택하지 말고 사용자 정의pushgerrit를 선택하세요.
 
완벽하게 해결했으니 이제 터미널을 버릴 수 있다.
 
3. 충돌 해결
 
gerrit에는 기본적으로 merger 권한이 없기 때문에 충돌이 발생한 후에 로컬에서 해결되어도 업로드할 때 오류가 발생합니다.어떡하지?이 때 분기 리셋을 최근에 충돌하지 않은 노드에 넣고 자신의 변경 사항을 Stash로 잠시 저장합니다.그리고 최신 코드를 끌어당기면 충돌하지 않습니다. 왜냐하면 작업 구역이 깨끗하기 때문입니다. 그리고stash를 사용하십시오. 이때 충돌을 하더라도 로컬에서 해결하면 제출할 수 있습니다.충돌 해결에는 여러 가지 방법이 있습니다. 이것은 제가 가장 자주 사용하는 것입니다. 여러분은 많이 연습해야 합니다.
 
제 블로그는 곧 텐센트 클라우드+커뮤니티로 운반하여 여러분을 초대합니다.https://cloud.tencent.com/developer/support-plan?invite_code=2qill3xndu040
 
전재 대상:https://www.cnblogs.com/6duxz/p/8967835.html

좋은 웹페이지 즐겨찾기