개발모음집

cli로 git사용하기 본문

Server

cli로 git사용하기

void 2018. 8. 22. 10:00

git clone /var/www/html

git init

git add --all

git commit -m 'test'

git config --global user.email "voiddeveloper91@gmail.com"

git config --global user.name "void"

git commit -m 'test'

git remote add origin https://voiddeveloper@bitbucket.org/voiddeveloper/test.git

git push -u origin master


=> 이 두 줄은 bitbucket 저장소 생성하면 보임



참고 url : 

http://webclub.tistory.com/317

https://rogerdudler.github.io/git-guide/index.ko.html

http://sapjil.net/easier-using-git/


ERR 1 : git commit -m 'test'을 했을 때


 On branch master

Untracked files:

db-dev.sqlite

lecture-vue-trello-server/

node_modules/

package.json

src/

yarn.lock


nothing added to commit but untracked files present


라는 에러가 발생했다.

.gitignore파일에 아래와 같이 업로드하면 안되는 파일들이 정의되어 있었다.

.DS_Store
node_modules
/dist

# local env files
.env.local
.env.*.local

# Log files
npm-debug.log*
yarn-debug.log*
yarn-error.log*

# Editor directories and files
.idea
.vscode
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw*


다 지우고 아래것만 남겼다.

node_modules



ERR 2 : git push -u origin master을 했을 때


git push -u origin master

Permission denied (publickey).

fatal: Could not read from remote repository.


라는 에러가 발생


# cd ~/.ssh

# ssh-keygen -t rsa -b 4096 -C "voiddeveloper91@gmail.com"

를 누르면 아래에  아래와 같이 뜬다.

Generating public/private rsa key pair.

Enter file in which to save the key (/root/.ssh/id_rsa):

Enter passphrase (empty for no passphrase):

Enter same passphrase again:

Your identification has been saved in /root/.ssh/id_rsa.


출처 : https://git-scm.com/book/ko/v1/Git-%EC%84%9C%EB%B2%84-SSH-%EA%B3%B5%EA%B0%9C%ED%82%A4-%EB%A7%8C%EB%93%A4%EA%B8%B0



꼭 id_rsa,pub 파일에 있는 내용을 깃허브에 알려줘야한다.

출처 : https://zeddios.tistory.com/120




파일의 라이프사이클.


출처 : https://git-scm.com/book/ko/v2/Git%EC%9D%98-%EA%B8%B0%EC%B4%88-%EC%88%98%EC%A0%95%ED%95%98%EA%B3%A0-%EC%A0%80%EC%9E%A5%EC%86%8C%EC%97%90-%EC%A0%80%EC%9E%A5%ED%95%98%EA%B8%B0


$ git status

$ git diff

$ git add

$ git commit

$ git commit -am :  add와 commit을 같이 

$ git remote

$ git push 

$git pull

$ git reset


커밋 되돌리기, 커밋한 내용과 되돌리기한 기록이 같이 없어짐.

그래서 github에 올리기전, commit한 상태에서만 가능,

만약 push후 다른 팀원이 git pull을 받은 상태에서 

reset을 해버리면, 내 컴퓨터의 커밋 로그와 다른 개발자의 커밋로그가 달라져

나중에 커밋 conflit이 생길 가능이 있음


=> git reset관련자료글

 https://gmlwjd9405.github.io/2018/05/25/git-add-cancle.html


$git revert


커밋내용 되돌리기, 커밋한 내용은 사라지지만, 되돌린 커밋기록도 남겨짐
그래서 github에 올린 후에 되돌리고 싶을 때,  하는 커밋

왜냐하면, 잘못된 커밋을 푸쉬하고 다른 팀원이 pull하면 

git reset으로 되돌리면 내 컴퓨터만 바뀌는거라 다른 팀원의 commit기록과 달라져 conflit됨




git branch

git merge


현재 브런치에서 다른 브런치의 내용을 합치는 것!

git rebase

git cherry-pick


hotfix

: 출시 버전에서 발생한 버그를 급하게 수정 하는 브랜치







추가된 이력 조회

git log --all --diff-filter=A --summary

파일 목록만 조회

git log --all --diff-filter=A --summary | grep create

삭제 이력 조회

git 에서 repository 에서 삭제된 전체 파일 목록 가져오기

git log --all --diff-filter=D --summary

 

자세한 커밋 이력은 필요없고 삭제된 파일 목록만 필요할 경우 

출처 : https://www.lesstif.com/pages/viewpage.action?pageId=22053264