git 초보자의 첫 팀 개발 주의사항 비망록

입문


나는 IT 기업에서 새 엔지니어로 일한다@shh-nkmr.
이번에 저는 개인을 대상으로 터치git 지령을 개발하고 배우고 싶지만 팀 개발에서 터치하지 않은 사람을 대상으로 제가 실제로 직면하고 배운 것을 공유하고 싶습니다.어쨌든 이런 거 주의하시면 팀 개발 현장에 가셔도 괜찮아요!아마
지적사항이 있으면 댓글로 남겨주세요.
전제 조건
로컬: 컴퓨터의 저장소
원격:github 같은 거.모두가 공유하는 자원 라이브러리
이번에 사용한 것은github이다.

카탈로그


1. 사용하는git 명령의 열거와 간단한 설명
2. 원격 분기에서 분기 분리
3. 당김 요청 만들기
4. 로컬 캡처 원격 최신 상태
5. 충돌 시 처리
6. 작업 중 다른 지점의 최우선 작업이 발생할 경우

1. 사용하는git 명령의 열거와 간단한 설명


로컬에서 변경된 파일 확인
$ git status
현재 사용 중인 분기 확인
$ git branch
원격 분기 확인
$ git branch -a
새 분기 만들기 & 분기 전환!
$ git checkout -b ブランチ名
변경된 파일 제출 허용
$ git add -A
로컬 저장소로 커밋
$ git commit
최신 저장소 정보를 원격으로 가져오고 업데이트합니다.
※ 업데이트된 정보일 뿐, 로컬 지점의 내용이 업데이트된 것은 아닙니다.
$ git fetch
브랜치를 결합합니다.
※ 위의fetch로 자주 사용됩니다.이것은 로컬 지점을 최신 지점으로 업데이트합니다.
$ git merge ブランチ名
변경된 파일을 일시적으로 저장합니다.댓글도 남겨주세요.
※ 작업 중 다른 지점으로 전환할 때 사용
$ git stash save -u "コメント"
임시 철수한stash들의 명단을 확인하다
$ git stash list
&stash 목록에서 임시로 저장된 내용 삭제
$ git stash pop スタッシュ名
원격
$ git push

2. 원격 브랜치에서 새 브랜치


~장면~새로운 작업 시작 시


선배: 화면 A를 수정하고 싶으니까 원격 마스터에서 수정용 새 부분을 잘라서 작업하세요.
나: 네!(절분이란 무엇입니까?)
※ 초보자일 때 혼자 개발할 때는 마스터에서 일하지 않으니 다른 부분을 절단(제작)하는 것이 가장 좋지만요.근데 팀에서 할 때는 거의 마스터에서 일하지 않아요!그래서 다른 일을 했어요.그럼 가보자.
Step ①: 로컬에서 원격에 대한 최신 정보 얻기
$ git fetch
Step ②: 분리된 지점 확인(원격 지점 확인)
$ git branch -a
Step ③: ②에서 확인한 브랜치부터 새 컷 브랜치
$ git checkout -b 新たなブランチ名 切る元のブランチ
Step ④: 신중하게 지점을 확인하기 위해 ※ 자주 사용
$ git branch
이런 느낌 나오겠지 ↓

이렇게 하면 좋겠다 이 지점에서 말한 내용의 일을 하자.

3. 당김 요청 만들기


~장면~의뢰 작업 종료 후 원격 조종 시


나: 화면 수정 끝났어!
선배: 그럼 push 미리 예약해 주세요.
나: 네!플릭
※ 혼자 개발했다면 일단 플릭(PR이라고도 함)은 하지 않았겠죠.팀 개발은 스스로 수정하거나 새로 쓴 코드를 다른 사람에게 평론하게 할 수 있다.그럼 그 순서를 한번 봅시다.
Step ①: push 이전 상태로 설정
$ git status     ※変更のあるファイルを確認する
$ git add -A
$ git commit -m "コミットメッセージ"
이것은 이미 한 일이기 때문에 문제없다.주의해야 할 것은 팀에 메시지를 제출하는 규칙이 있기 때문에 이러한 규칙을 준수하는 메시지를 제출하는 것에 주의하십시오.
Step②:
푸시 전에 차이 확인하세요.GUI 도구를 사용할 수 있습니다.저는 SourceTree(무료)를 사용합니다.이렇게 하면 자신도 코드를 검사해야 한다. 만약 잘못된 것이push에 걸릴 것 같으면 미연에 방지하자.(이거 안 했어요. 잘못된 상태를push했어요. 폐를 끼쳤어요...댓글을 남기는 사람의 부담을 최소화하기 위해 스스로 검사하다
Sourcetree →  https://www.sourcetreeapp.com/
Step ③: 야 push
$ git push origin あげる先のブランチ名
※現在いるローカルのブランチ名を入れます。初回だと新しくリモートにそのブランチを作成します
github↓ 확인하세요.
이런 느낌의 버튼이 있으니 거기서 홍보를 만들어라!

4. 로컬 캡처 원격 최신 상태


~장면~다른 사람이 업데이트한 내용을 로컬로 가져오기


선배: A 씨가 원격으로 업데이트한 내용이 있으니, 로컬에서 조작해 주세요.
나: 나무통이야!(도중에 어떻게 찾나요?)
※ 이쪽도 혼자 하면 안 일어나겠죠.제 경우에는 담당 장소에 대한 표시 처리가 추가되었기 때문에 그 변경이 필요합니다.팀에서 개발의 일치성을 유지하기 위해 가능한 한 현지 지점을 최신으로 설정한다.
Step ①: 로컬 원격 정보 업데이트
$ git fetch
Step ②: 업데이트 소스(원하는 것) 브랜치를 확인하고 로컬에서 병합
$git branch -a
$git branch                   *現在いるブランチの確認
$git merge 更新元のブランチ名     *更新先(させたい)ブランチいる必要があります
이로써 로컬 브랜치가 업데이트되었습니다.여기서 궁금한 거 생각해 봤는데 git pull 안 돼요?모범 사례를 찾습니다.git pull 수행git pull == git fetch + git merge.나도 선배한테 물어봤는데 pull을 잘 안 쓰는 것 같아.
http://dqn.sakusakutto.jp/2012/11/git_pull.html

5. 충돌 시 처리


~장면~결합 시도 시


나: 와, 충돌이 일어났어. 어떤 코드를 남기면 좋을까...
※ 한 사람이 개발하면 충돌이 발생하기 어렵고, 충돌이 발생하더라도 모든 변경 사항을 파악할 수 있습니다.
너는 어느 것을 남겨야 할지 알지!팀 개발을 할 때 다른 사람이 쓴 변경을 완전히 바꿀 수도 있으니 충돌을 없애는 데 주의해야 한다.
Step ①: 충돌하는 파일 보기
이런 정보↓fuga.txt이 충돌했다.

Step ②: 편집기에 남겨진 코드를 결정합니다.필요 없는 물건, 삭제
이런 느낌↓<<<<<<HEAD,=======,>>>>>>> conflict_practice(git 충돌 시 자동 생성) 이 부분이 필요하지 않기 때문에 삭제할 수 있습니다

↓ 나머지 부분을 제외하고는 삭제하고 결국 아래의 모습으로 바뀌었다.
$git add -a
$git commit 
에서 기술한 장면은 다음과 같은 절차를 이용하여 명세표를 작성하여 개념 디자인에서 체량의 부피를 분석하도록 한다.
※ 충돌 해제 시 주의하세요!!
위의 견본 중에서 나는 어느 것이든 괜찮다고 생각한다
실제 현장에서 나는 어느 것을 남겨 두어야 좋을지 모르겠다
따라서 코드가 변경된 사람, 지도자, PM에게 확인하십시오.
....
이곳의 의문은 "코드를 바꾼 사람은 어떻게 알았습니까?"모범 사례를 찾습니다.
막 대열에 들어갔을 때는 좌우를 가리지 않았기 때문에 누가 어느 부분을 책임질 것인가
자신이 없어서 힘들어요.저는 Atom 편집기를 썼어요.
이럴 때 코드를 쓰는 사람에게 알려주는 blame를 사용한다.
자세한 내용은 여기를 참조하십시오. → https://qiita.com/snowsunny/items/17f35baf0671451d2c09#blame

6. 작업 중 다른 지점의 최우선 작업이 발생할 경우


~장면~새로운 작업 시작 시


선배: 홍보 댓글을 달았으니 우선 수정해 주세요.
나: 알았어!이때의 나는 스타쉬에 대해 아무것도 몰랐다...
Step ①: 작업을 수행하는 지점으로 전환
$git checkout ブランチ名
단, 현재 지점에서 파일을 변경했다면, 체크아웃 (전환) 을 잘 할 수 없습니다.이것이 바로 작업 트리의 상태와 목적지를 전환하는 지점이 다른 이유다.이런 실수
error: Your local changes to the following files
 would be overwritten by checkout: hoge.rb
Please commit your changes or stash them before you switch branches.
Aborting
그래서 이 서류들을 잠시 피해야 합니다.바로 stash입니다.
Step ②: 파일 일시 저장
$git stash save -u "スタッシュ名"   
*スタッシュ名は後で一時退避から復活させる時に、どれを復活させるか見分けるためにわかりやすいものにしましょう。

$git checkout ブランチ名
~ ~ ~ 최우선 작업 완료, 작업 복귀 시 ~
Step ③: 잠시 대피한 파일들을 부활시키기
$git stash list  *スタッシュしたリストを確認
화살표 앞부분은 별 이름입니다.
$git stash pop スタッシュ名  *復活&スタッシュリストからの削除
이렇게 하면 예전의 업무 상태로 돌아갈 것이다.나는 stash를 잘 이해하지 못해서 잘 어울린다.나중에 생각해 보면 그런 것 같아요.

끝내다


여기까지 쓰게 하는 건 힘들지만 처음 사람을 향해 쓴 걸 깨달았기 때문에 이미 경험이 있는 사람에게는 글의 설명이 복잡할 수도 있다.이렇게 말하는 나도 초보자이니 완비되지 않은 부분이 있을 수 있으니 그때 댓글로 지적해 주세요.잘 부탁드립니다.
참고 자료
https://backlog.com/ja/git-tutorial/

좋은 웹페이지 즐겨찾기