Giit now에서 시작하는 Commiit 드라이버 개발
TL;DR
git-now 자세히 제출해주세요
git push
하기 전에 git rebase -i
습관을 들여라개시하다
지트를 사용하는 데 누구나 고민할 것 같은 일은git push
.
지겹지 않게 밀면 일지가 신기해져...
그럼에도 불구하고 어느 정도 단위로 미루면 현지의 차분 파일의 양이 신기해진다...
기본적으로 부지런히 제출하는 것이 좋다
상세한commiit는 다음과 같은 장점이 있다.
상세한commiit는 다음과 같은 장점이 있다.
나는 부지런히 제출하는 것이 가장 좋다는 것을 알고 있지만, 미룰 때 나는 커미션을 총결하고 싶다
거기서 어떤 입도로 Commiit & Push를 진행할까요!
git rebase -i
명령을 사용하여 로컬 창고의 미적용 커밋을 편집할 수 있습니다.몇 개의 제출을 하나로 모아 평론을 수정하고 특정한 제출을 배제한다.
우리는 개발에 열심히 노력하면서 개발을 진행한 다음에 미루는 타이밍에 두드리자git rebase -i
.pick <commit id #1> 1回目のコミット
pick <commit id #2> 2回目のコミット
pick <commit id #3> 3回目のコミット
pick <commit id #4> 4回目のコミット
pick <commit id #5> 5回目のコミット
# Rebase ...
#
# Commands:
# p, pick = use commit
# r, reword = use commit, but edit the commit message
# e, edit = use commit, but stop for amending
# s, squash = use commit, but meld into previous commit
# f, fixup = like "squash", but discard this commit's log message
# x, exec = run command (the rest of the line) using shell
#
# If you remove a line here THAT COMMIT WILL BE LOST.
# However, if you remove everything, the rebase will be aborted.
이런 화면이 나올 거예요.미추천 위원은 일렬로 전체git rebase -i
였다.아래의 도움말에도 pick
는 그걸로 직접 제출한다는 뜻이라고 쓰여 있다.변경 pick
의 부분을 통해 제출할 수 있습니다.자주 사용하면 다음과 같은 몇 가지가 있습니다.
pick <commit id #1> 1回目のコミット
pick <commit id #2> 2回目のコミット
pick <commit id #3> 3回目のコミット
pick <commit id #4> 4回目のコミット
pick <commit id #5> 5回目のコミット
# Rebase ...
#
# Commands:
# p, pick = use commit
# r, reword = use commit, but edit the commit message
# e, edit = use commit, but stop for amending
# s, squash = use commit, but meld into previous commit
# f, fixup = like "squash", but discard this commit's log message
# x, exec = run command (the rest of the line) using shell
#
# If you remove a line here THAT COMMIT WILL BE LOST.
# However, if you remove everything, the rebase will be aborted.
pick
: 커밋 사용p
: 수정 제출 주석r
: 이전 제출로 통합(변경 가능 제출 의견)s
: 마지막으로 제출한 것으로 요약r <commit id #1> 1回目のコミット
f <commit id #2> 2回目のコミット
f <commit id #3> 3回目のコミット
r <commit id #4> 4回目のコミット
f <commit id #5> 5回目のコミット
제출 주석을 변경하려면 ↑f
에서 시작한 편집기를 저장하고 닫은 다음 다시 시작하십시오.제출 주석을 입력하고 저장합니다.예:
※ rebase-i에서git rebase-i 오류가 발생했을 경우
There is no tracking information for the current branch.
실행 후 다음 오류가 나타날 수 있습니다.There is no tracking information for the current branch.
Please specify which branch you want to rebase against.
See git-rebase(1) for details.
git rebase <branch>
If you wish to set tracking information for this branch you can do so with:
git branch --set-upstream-to=<remote>/<branch> <your branch>
이 오류가 나타나면 오류 메시지에도 쓰여 있습니다. git rebase -i
예: git branch --set-upstream-to=
git branch --set-upstream-to=origin/topic-bugfix topic-bugfix
밀어낼 원격 분기를 지정하면 되지만 원격 창고에 없는 분기(밀어내지 않은 분기) 내--set-upstream-to=<remote>/<branch>
에서는 분기를 지정하면 됩니다.리베이스 사용법은 알지만 자주 제출하면 귀찮겠죠?
거기는 리베이스예요!
git-now는 명령 하나로 임시 제출을 쉽게 완성할 수 있는 도구다.
하마터면 제출을 시작할 뻔했는데 타이밍git-now
에 두드리기만 하면 제출했다.
뭐, 그냥 보통git now
쓰면 되지만 매번 메세지를 쓸 때마다 번거롭고 유형도 많고...그래서 사용했다git commit -am "適当なメッセージ"
.
Mac 사용자가 Homebrew를 사용한다면 git now
쉽게 가져올 수 있습니다.
이걸로 가져오는 거예요.brew install git-now
→git now
→git now
→ 별로 밀지 말아야 할 것 같은데(ゝ')→git now
→git rebase -i
이러한 절차에 따라 개발할 수 있습니다(\') 와
git push→git now가 편한 건 알지만 잘못 누르면 큰일 나죠?
거기는 git rebase-i!
GTI 표준에는 훅 기능이 있습니다.회Pre-Push Hook
또는 コミット前に○○したい
의 물건입니다.이번에 プッシュしたら☓☓したい
를 사용해서 미룰 때 남은 것이 있는지 검사해 보세요Pre-Push Hook
.
Git Hook은 각 Git 프로젝트git now
에서 생성됩니다.거기에 직접 써도 되지만 모든 항목의 변경이 번거롭기 때문에.git/hooks/
나git init
라면 자신의 훅 생성으로 설정하세요.git clone
디렉터리를 만들고 그 아래에 ~/.git_template/hooks/
파일을 만듭니다.pre-push
의 내용은 다음과 같다.#!/bin/sh
# An example hook script to verify what is about to be pushed. Called by "git
# push" after it has checked the remote status, but before anything has been
# pushed. If this script exits with a non-zero status nothing will be pushed.
#
# This hook is called with the following parameters:
#
# $1 -- Name of the remote to which the push is being done
# $2 -- URL to which the push is being done
#
# If pushing without using a named remote those arguments will be equal.
#
# Information about the commits which are being pushed is supplied as lines to
# the standard input in the form:
#
# <local ref> <local sha1> <remote ref> <remote sha1>
#
# This sample shows how to prevent push of commits where the log message starts
# with "WIP" (work in progress).
remote="$1"
url="$2"
z40=0000000000000000000000000000000000000000
while read local_ref local_sha remote_ref remote_sha
do
if [ "$local_sha" = $z40 ]
then
# Handle delete
:
else
if [ "$remote_sha" = $z40 ]
then
# New branch, examine all commits
range="$local_sha"
else
# Update to existing branch, examine new commits
range="$remote_sha..$local_sha"
fi
# Check for WIP commit
commit=`git rev-list -n 1 --grep '^\[from now\]' "$range"`
if [ -n "$commit" ]
then
echo >&2 "Found NOW commit in $local_ref, not pushing"
exit 1
fi
fi
done
exit 0
간단히 말해서 댓글에 pre-push
이 포함된 경우 미루는 것을 허용하지 않는다.
이렇게 하면 [from now]
제출git now
누출된 제출이 남으면 미룰 수 없고 오폭하는 경우가 없습니다(') WO
TL; DR과 함께
거기는 git rebase-i!
GTI 표준에는 훅 기능이 있습니다.회
Pre-Push Hook
또는 コミット前に○○したい
의 물건입니다.이번에 プッシュしたら☓☓したい
를 사용해서 미룰 때 남은 것이 있는지 검사해 보세요Pre-Push Hook
.Git Hook은 각 Git 프로젝트
git now
에서 생성됩니다.거기에 직접 써도 되지만 모든 항목의 변경이 번거롭기 때문에.git/hooks/
나git init
라면 자신의 훅 생성으로 설정하세요.git clone
디렉터리를 만들고 그 아래에 ~/.git_template/hooks/
파일을 만듭니다.pre-push
의 내용은 다음과 같다.#!/bin/sh
# An example hook script to verify what is about to be pushed. Called by "git
# push" after it has checked the remote status, but before anything has been
# pushed. If this script exits with a non-zero status nothing will be pushed.
#
# This hook is called with the following parameters:
#
# $1 -- Name of the remote to which the push is being done
# $2 -- URL to which the push is being done
#
# If pushing without using a named remote those arguments will be equal.
#
# Information about the commits which are being pushed is supplied as lines to
# the standard input in the form:
#
# <local ref> <local sha1> <remote ref> <remote sha1>
#
# This sample shows how to prevent push of commits where the log message starts
# with "WIP" (work in progress).
remote="$1"
url="$2"
z40=0000000000000000000000000000000000000000
while read local_ref local_sha remote_ref remote_sha
do
if [ "$local_sha" = $z40 ]
then
# Handle delete
:
else
if [ "$remote_sha" = $z40 ]
then
# New branch, examine all commits
range="$local_sha"
else
# Update to existing branch, examine new commits
range="$remote_sha..$local_sha"
fi
# Check for WIP commit
commit=`git rev-list -n 1 --grep '^\[from now\]' "$range"`
if [ -n "$commit" ]
then
echo >&2 "Found NOW commit in $local_ref, not pushing"
exit 1
fi
fi
done
exit 0
간단히 말해서 댓글에 pre-push
이 포함된 경우 미루는 것을 허용하지 않는다.이렇게 하면
[from now]
제출git now
누출된 제출이 남으면 미룰 수 없고 오폭하는 경우가 없습니다(') WOTL; DR과 함께
git-now 자세히 제출해주세요
rebase
하기 전에 git push
습관을 들여라Reference
이 문제에 관하여(Giit now에서 시작하는 Commiit 드라이버 개발), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/k_tada/items/4b7ae126e6c5df2cb33c텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)