git 에 연결 / 원격 repository 에 연결하는 방법 / command line 연결 /
git 사용법 /git 연결 / git init / git command / git commands git
cherry-pick / git cherry /git cherrypick
알아두면 편리한 git commands
git clone
git clone https://<git_url>
특정 commit id 에 대한 clone 을 하려 할 때:
git clone https://<git_url>
git checkout <commit_id>
git add <file_path>
# `-p` 를 하면 interactive 하게 확인하고 stage 로 올리게 된다.
git add -p
// 현재 directory 의 변경 사항을 staged changes 로 놓음
git add .
// 개별 file 을 staged changes 로 변경
git add <file_path>
// 모든 `git-` 으로 시작하는 txt file 들을 add 한다.
git add git-*.txt
// staged files list
`git status` --> 'Changes to be committed' 부분 확인
또는
git diff --name-only --cached
git commit –amend
// 메시지 변경
git commit --amend -m "an updated commit message"
// stage file 들을 마지막 commit 에 추가
git commit --amend --no-edit
undo
--soft
는 undone 한 revision 의 변경사항들을 보관해준다.
즉, commit 됐던 내용들을 staged 로 돌려준다. 이 상황에서 staged 에 있는
변경사항을 없애려면, git reset --hard
를 하면 된다.
--hard
는 그냥 commit 된 것들을 삭제한다.
git reset // 현재 staged 로 된 것들을 unstaged 해준다.
git reset --soft HEAD~<n>
git reset --hard // 현재 local change 들을 날려준다.
git reset --hard HEAD~1
git reset --hard <commit-id>
git revert <commit-id> // commit-id 로 되돌아 간다. push 가 된 commit 을 돌릴 때 사용할 수 있다.
push, pull
origin 의 변경사항을 반영(push) 하고 가져온다.(pull)
git push
git pull
local branch 를 origin 에 반영하기
git branch feature/my-branch
git checkout feature/my-branch
git push -u origin feature/my-branch
-u
대신에 --set-upstream
을 사용해도
된다.
git push --set-upstream origin feature/my-branch
local 의 commit 중 push 되지 않은 commit 을 찾는법
git log --branches --not --remotes
새로운 branch 를 생성하고, checkout 하기
git branch <new_banch_name>
git checkout <new_banch_name>
branch 삭제
git branch -d <local_branch_name>
git push origin --delete <remote_branch_name>
merge
master 로 가서 feature/mynewfeature
의 내용을 master 로
merge 한다.
git checkout master
git merge feature/mynewfeature
하나의 commit 으로 merge 하려면 --squash
를
사용한다.
git merge --squash feature/mynewfeature
merge 를 하고는 싶은데, 일부를 걸러내고 싶다면, 일단
--no-commit
으로 merge 를 하고, 필요없는 것들을
제외하자.
git checkout master
git merge feature/mynewfeature --no-commit
tags list {#tags list}
# tag 들을 가져온다.
git fetch --all --tags --prune
# tag list
git tag
특정 commit id 에 tag 를 달때
git tag -a v1.2.1 3c4c87462eff680f17d3688ebe82634c26fcf24c -m "materails.stock update"
tag 를 origin 에 push commit
git push origin <tag_name>
git push --tags
이글
서 git push --tags
를 추천하지 않는다.
특정 commit 만 push 하기
git push <remote name> <commit hash>:<remote branch name>
git push origin 068bbb5e8335d2349b6bbbe422368778e7392098:master
특정 commit 만 merge 하기
master 에 다른 branch 에 있는 commit 을 merge 하려고 할 때
git checkout master
git cherry-pick ecb81a4f15d38c2a394a33207e29ccf95bf4bb24
현재 변경사항을 처박아두기
현재 stage/commit 되지 않은 변경사항을 일단 숨겨놓는다. 그리고 commit
이나 pull 등의 작업을 마치고 나서 stash pop
등을 통해서
다시 불러올 수 있다.
git stash
git stash pop
현재 branch 의 base 를 변경하기
master 에서 branch A를 만든 후에, master 가 변경될 수 있다. 그러면 새로운 branch A 의 base 는 master 에서 왔지만 다를 수 있다. 이 경우에 다시 base 를 master 의 현재 상황으로 update 하는 것이라 보면 된다.
git rebase master
현재 branch 의 이름 변경
변경하길 원하는 branch 로 변경하고, 거기서 git branch -m
으로 변경하면 된다.
git checkout <branch>
git branch -m <new_branch_name>
댓글 없음:
댓글 쓰기