Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

치트 시트 만들기 #1

Open
zwonlala opened this issue Jun 15, 2021 · 18 comments
Open

치트 시트 만들기 #1

zwonlala opened this issue Jun 15, 2021 · 18 comments

Comments

@zwonlala
Copy link
Owner

No description provided.

@zwonlala
Copy link
Owner Author

@zwonlala
Copy link
Owner Author

zwonlala commented Jun 15, 2021

  1. git config 설정하기
    https://git-scm.com/book/ko/v2/%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0-Git-%EC%B5%9C%EC%B4%88-%EC%84%A4%EC%A0%95#_first_time+
$ git config --global user.name "John Doe"
$ git config --global user.email [email protected]


2-0. git config 설정 사항 확인하기

$ git config --list

@zwonlala
Copy link
Owner Author

zwonlala commented Jun 15, 2021

2-1. 만약 폴더 별로 다른 이름과 아이디로 설정하고 싶으면 위에 링크 설정할때 global 빼고 설정하면 됨

$ git config user.name "John Doe"
$ git config user.email [email protected]
git config user.name "zwonlala"
git config user.email [email protected]
git remote set-url origin https://zwonlala:[email protected]/zwonlala/REPOSITORYgit

다시 말하자면 --global 옵션으로 설정하는 것은 딱 한 번만 하면 된다. 해당 시스템에서 해당 사용자가 사용할 때는 이 정보를 사용한다. 만약 프로젝트마다 다른 이름과 이메일 주소를 사용하고 싶으면 --global 옵션을 빼고 명령을 실행한다.

@zwonlala
Copy link
Owner Author

원격 브랜치 받아오기

git checkout -t origin/feature/UNICORN-1223

-t 옵션은 트래킹을 하겠다는 의미

https://cjh5414.github.io/get-git-remote-branch/

@zwonlala
Copy link
Owner Author

  • branch 확인하기

https://lelecoder.com/52
https://ifuwanna.tistory.com/283

  1. branch 만들기
    git branch ~~~

2.특정 브랜치로 이동하기
git checkout ~~~

3.브랜치 생성하면서, 해당 브랜치로 이동하기
git branch -b ~~~

  1. 브랜치 삭제하기
    git branch -d ~~~

5 브랜치 조회하기
git branch (로컬 브랜치 목록 조회)
git branch -r (원격 브랜치 목록 조회)
git branch -a (모든 브랜치 목록 조회)

git show-branch (tree 구조와 함께 칼라풀하게 보여짐)

  1. 지금 현재 브랜치 보기
    git branch --show-current

@zwonlala
Copy link
Owner Author

zwonlala commented Sep 27, 2021

git이 추적하지 않는 untracked files 한번에 삭제하기
https://blog.outsider.ne.kr/1164

https://victorydntmd.tistory.com/54

git clean -f (untracked file 모두 지운다)
git clean -d (디렉토리까지 지운다)
git clean -fd (위 두 옵션 짬뽕)

@zwonlala
Copy link
Owner Author

git show

git show <COMMIT_HASH>

해당 커밋 보여줌

@zwonlala
Copy link
Owner Author

특정 시점의 커밋으로 돌아가는 법

git checkout <COMMIT_HASH>

해당 시점의 커밋으로 이동함

+ 다시 최신 커밋으로 돌아가기

git checkout -

@zwonlala
Copy link
Owner Author

zwonlala commented Apr 5, 2022

TIL 220405 내용






업무용 맥북 OS 업데이트 하면서 읽은 글...

김정환 블로그 "깃(Git) 개념과 상황별 팁"



필요한 라인만 커밋하기

-p 옵션

git add -p

변경한 라인만 스테이징 에어리어에 넣는 옵션

// ... 
// 변경사항들
// ...

Stage this hunk [y,n,q,a,d,s,e,?]? s

s(Split)을 입력하면, file diff를 한 줄 단위로 staging area로 올릴지 말지 정할 수 있음

n(No)을 입력하면, staging area에 포함하지 않음

e(Edit)을 입력하면 편집 모드로 들어가 직접 스테이징할 라인을 선별할 수 있음




잘 이해가 되지 않아 검색한 공식문서

git add -p option

-p
--patch

Interactively choose hunks of patch between the index and the work tree and add them to the index. This gives the user a chance to review the difference before adding modified contents to the index.

This effectively runs add --interactive, but bypasses the initial command menu and directly jumps to the patch subcommand. See “Interactive mode” for details.

interactive mode (patch)

y - stage this hunk
n - do not stage this hunk
q - quit; do not stage this hunk or any of the remaining ones
a - stage this hunk and all later hunks in the file
d - do not stage this hunk or any of the later hunks in the file
g - select a hunk to go to
/ - search for a hunk matching the given regex
j - leave this hunk undecided, see next undecided hunk
J - leave this hunk undecided, see next hunk
k - leave this hunk undecided, see previous undecided hunk
K - leave this hunk undecided, see previous hunk
s - split the current hunk into smaller hunks
e - manually edit the current hunk
? - print help


rebase -i 활용

git rebase -i HEAD~3

HEAD를 포함한 이전 커밋 3개를 재작성 (rebase) 하겠다.

commands

# 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
# d, drop = remove commit
  1. 커밋 순서 변경하기

-i 모드로 열면, 해당되는 커밋들의 목록이 보임
(이래 위에서 아래 순서로 시간 순. 즉 가장 오래된 커밋이 가장 위에 있음)

해당 라인 위치를 변경하면 커밋 순서 변경됨?
(다만 커밋간 diff 가 겹칠 경우, 충돌이 발생할 수 있으므로 주의!)

  1. 두 커밋 합치기
    합칠? 추가할? 커밋의 앞 부분을 pick 에서 f (fixup)으로 수정하고
    합치고자 할 커밋 아래 부분으로 이동시킨다.

그렇게 수정하고 저장하면(:wq)
커밋 메시지 수정을 위한 editor 화면이 열리고, 저장하면
두 커밋이 하나로 합쳐짐



git pull

git pull origin master

원격 저장소의 최신 업데이트 내용을 로컬에 가져와 현재 브렌치와 머지
-> 원격 저장소의 변경 내용이 로컬 저장소에 반영
(fast forward 가능하면 바로 진행 & 불가능하면 머지 커밋 생성)


머지 커밋 없이 작업 내역을 깨끗이 유지하고 싶으면 --rebase 옵션 사용 가능

git pull origin maseter --rebase

-> 원격 저장소에 있는 변경사항 먼저 쌓고, 그 다음 나의 변경사항을 쌓는 방식
(커밋 그래프 단순하게 관리 가능해짐)

@zwonlala
Copy link
Owner Author

zwonlala commented May 23, 2022

git commit 시점 변경하기

마지막 Commit 날짜를 현재 날짜로 설정

git commit --amend --no-edit --date "$(date)"

마지막 Commit 날짜를 임의의 날짜로 설정

git commit --amend --no-edit --date "Mon 20 Aug 2018 20:19:19 KST"
git commit --amend --no-edit --date

참고 : git commit 날짜 바꾸기



  • --no-edit 옵션의 의미

커밋을 수정할때는

  • 커밋 메시지를 수정
  • 커밋 자체(코드 수정)를 수정

이렇게 두가지 경우의 수가 있다.

이때, 커밋 자체만 수정하고 커밋 메시지를 수정하길 원하지 않을 때,
--no-edit 옵션을 사용하여 커밋 메시지가 수정될 수 있는 상황을 피할 수 있다

스크린샷 2022-06-18 오후 1 57 31

참고 : git-scm.com "--no-edit 옵션"

@zwonlala
Copy link
Owner Author

git branch 생성시간 확인하기


git reflog show --date=iso [branch name]

참고: Branch creation date (Branch 생성일)

@zwonlala
Copy link
Owner Author

git tag 활용하여 이동하기


  • 원하는 tag로 체크아웃 하기
git checkout tags/원하는태그

  • 태그를 기반으로 새로운 브랜치 생성하기
git checkout tags/원하는태그 -b 원하는브랜치명


참고 : [git] tag로 이동하기

@zwonlala
Copy link
Owner Author

zwonlala commented Oct 19, 2022

이미 commit 한 커밋의 author 수정하기

기존에 사용하던 노트북이 아닌 새로운 환경에서 커밋을 한 경우

해당 디렉토리의 config를 수정해주지 않으면 기본적으로 설정된 author 정보로 커밋이 된다.

 

이때 이미 commit 한 커밋의 author 정보를 수정하기 위해서는

// --author="USER_NAME <USER_EMAIL>" 속성 사용하면 됨

git commit --amend --author="zwonlala <[email protected]>" --no-edit

 
 

참고한 글:

@zwonlala
Copy link
Owner Author

zwonlala commented Jan 23, 2024

empty commit 추가하기

git commit --allow-empty -m "Empty commit message"

// 사용 예시.
// 배포 실패로 인한 빈 커밋 추가

git commit --allow-empty -m "chore: 배포 실패로 인한 empty commit 추가"

git commit --allow-empty -m "Add empty commit"

git commit --allow-empty -m "chore: 배포 실패로 인한 empty commit 추가"

chatGPT 왈 - chatGPT 왈

@zwonlala
Copy link
Owner Author

프로젝트의 첫번째 커밋 수정하기

$ git rebase -i --root

https://stackoverflow.com/questions/2246208/change-first-commit-of-project-with-git

@zwonlala
Copy link
Owner Author

zwonlala commented Apr 4, 2024

실수로 git commit --amend 로 commit 한 경우

git reset --soft 'HEAD@{1}'

위 명령어 실행시키면, staging Area에 방금 커밋한 부분들 rollback 됨.

https://luavis.me/server/undo-amend-commit

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant