바뀐걸 기록하는것.
그리고 로그기록과 함께 저장된다.
git shortlog -sn
아래 사진에서 mnist 파일에 누가 많이 기여했는지 확인하고 싶다.
git shortlog -sn -- minst/
git shortlog -sn --after=2018-01-01 -- mnist/
git log --online --after=2018-01-01 --befor=2019-01-01
git log --online --after=2018-01-01 --befor=2019-01-01 | wc -l
git log --online --after=2018-01-01 --befor=2019-01-01 --파일이름.
git log --oneline --no-merges
Add : 없는기능 옵션 추가할 때 (파일추가할때 쓰는경우가 많은데, 그것보다 이 파일을 왜 추가했는지 설명달아주는게 더 좋음!)
Fix: 잘못된 것을 고친것
Improve: 원래는 잘되던건데 개선한 것 (예: 10초 → 5초)
Implement: 설계를 구현 (미리 Discussion 된 부분을 구현)
Support: 윈도우 → 리눅스, ARM → x86 에서도 가능하게 고칠시
git config --global user.name "Hoyong Lee"
git config --global user.email "ghdyd6372@naver.com"
git config --global core.editer nano
sudo apt install -y nano
master에 test파일 없고 test 브랜치에는 test파일이 있음.
add 랑 commit 해야 test브랜치에 적용이됨.
git checkout -b test
echo "hihihi" > test
git add .
git commit -m "test파일 만들었습니다."
git checkout master
공동작업을 하는중. 다른개발자가 먼저 머지함.
내거는 옛날 베이스임으로 리베이스를 하고 난뒤에 푸쉬 가능함.
히스토리를 가져오는것!
히스토리는 .git안에 있다. .git에는 여러 브랜치의 내용이 담겨져있고, checkout으로 파일을 가져올수 있다!
그래서 add, commit을 하면 해당 브랜치에 히스토리에 저장해둬 진다.
git reset --hard HEAD~1
]
]
-ㄴ
]
이전 커밋에서 import requests를 커밋했는데 as req를 까먹고 커밋했다.
그럼 새로운 커밋을 또 올려야하나??( 좋지 않음 )
그래서 import requests를 올렸던 커밋을 수정해주자.
--amend 옵션을 사용하면 최신 커밋을 수정할수 있다.
amend사용법은 우선 원하는 부분을 수정한다음에 그냥 add 하고 commit 만 아래와 같이 해주면 최신 커밋과 합쳐진다.
git commit --amend
아 까 말대로 rebase를 할려고한다.
re base 새롭게 base를 정의
그러기 위해서 원격저장소에서 히스토리로 새로운 base를 가지고온다.
git fetch upstream master
내가 작업한거 일단 되감음 .
기존 base에 fetchfh 받아온 최신 base를 올림.
다시 올려! 끝!
아래 처럼 커밋이 있는데 f9b87bb 위에 새로운 커밋을 올려보자!
git rebase -i --root
이러고 아래 처럼 나오면 고치고 싶은 곳에 edit을 하자.
자 그럼 이렇게 이전 커밋으로 돌아가버림.
그리고 다시 돌리고 싶으면 continue를 쓰면 예전으로 돌아감.
git rebase --continue
$ git rebase -i --root
//hoylee3 을 edit으로 바꿔주자.
$ git reset --soft HEAD~1
$ git status
$ git commit --amend
$ git rebase --continue
]]]
864cf0f 를 없애보자.
git rebase -i --root
864cf0f 로 이동하자. 그리고
git reset hard HEAD~1
커밋을 날려버릴수 있다!!!
git blame src/node.cc
이렇게 파일에 blame을 쓰면 누가 커밋을 했는지, 커밋로그는 무엇인지 확인할수 있고, 해당 커밋을 확인해서 해당 코드를 왜 넣었는지 파악할때 사용한다.
git fetch upstream master
git rebase upstream/master
git status
git diff
nano README.md
git add .
git rebase --continue
git push origin master -f