신건우
2023. 5. 17. 12:47
Git
Git Pull
git remote remove origin
git remote add origin https://{Github-Name}:{Access-Key}@github.com/{Repo-Name}/{Project-Name}.git
git pull origin master
Git Stash
Git Stash Rename
- git config --global alias.stash-rename '!_() { rev=$(git rev-parse $1) && git stash drop $1 || exit 1 ; git stash store -m "$2" $rev; }; _'
- Git stash-rename stash@{바꿀 stash 번호} 바꿀 이름
- git stash pop stash@{숫자}
- git stash save "지정할 이름"
Branch
# 로컬 브랜치 생성
git branch -b 브랜치명
# 원격 브랜치 생성
git push origin 브랜치명
# 브랜치 삭제
git branch -d 브랜치명
# 브랜치 강제 삭제
git branch -D 브랜치명
# 원격 브랜치 삭제
git push origin :브랜치명
Rebase
메인 브랜치의 변경사항을 다른 브랜치에 적용 시킬때 사용
Remote → Remote 일때만 사용함
Remote → Local 변경사항 적용은 Pull 사용
git checkout {현재 작업중인 브랜치 이름}
git rebase master
Commit Author 일괄 변경
변경 전 user.name, user.email 전역 설정 하고 아래 명령어 입력
- 한번에 변경
git filter-branch --env-filter '
OLD_EMAIL="replicaset01@github.com"
OLD_EMAIL2="replicaset02@github.com"
CORRECT_NAME="spacedustz"
CORRECT_EMAIL="cyberspecterr@github.com"
if [ "$GIT_COMMITTER_EMAIL" = "$OLD_EMAIL" ]
then
export GIT_COMMITTER_NAME="$CORRECT_NAME"
export GIT_COMMITTER_EMAIL="$CORRECT_EMAIL"
fi
if [ "$GIT_COMMITTER_EMAIL" = "$OLD_EMAIL2"]
then
export GIT_COMMITTER_NAME="$CORRECT_NAME"
export GIT_COMMITTER_EMAIL="$CORRECT_EMAIL"
fi
if [ "$GIT_AUTHOR_EMAIL" = "$OLD_EMAIL" ]
then
export GIT_AUTHOR_NAME="$CORRECT_NAME"
export GIT_AUTHOR_EMAIL="$CORRECT_EMAIL"
fi
' --tag-name-filter cat -- --branches --tags
기록 삭제
git update-ref -d refs/original/refs/heads/master
git log --pretty=format:"[%h] %cd - Committer: %cn (%ce), Author: %an (%ae)"
수정된 커밋 내역 Push
git push --force --tags origin 'refs/heads/*'
만약 특정 브랜치만 적용하고 싶으면 아래와 같이 푸시
git push --force --tags origin 'refs/heads/develop'
Conflict
<<<<<<< Updated Upstream
이 사이에 있는 코드는 업데이트된 Main 브랜치의 코드
=======
이 사이에 있는 건 내가 Stash Pop한 코드
>> Stashed Changes