Git & GitHub
Git & GitHub with Terminal
학습내용
Git & GitHub
- Git : 변경이력을 저장할 수 있는 툴
- GitHub : 이 툴을 가지고 내 로컬에서 뿐만 아니고 서버를 제공해줘서 여러명이 같이 작업을 하거나 내가 백업 용도로 사용할 수 있는 서버를 제공하는 곳, git을 사용할 수 있게 도와주는 서비스 중에 하나
Terminal command line
|Terminal command|function| |–|:–| |mkdir|make directory| |touch|make file| |rm|Remove files| |rmdir|Remove folder(s)| |pwd|Print Working Directory| |cd|Change Directory| |ls|List information about file(s)| |open|Open a file in its default application| |clear|Clear terminal screen|
- ~ 표시: 사용자의 홈폴더
- vi README.md리드미파일 수정
source Googling link
git 명령어
|git 명령어|기능| |–|–| |git init|git 초기화| |git status|git 상태: 미완료 commit 확인 가능| |git config —global|커밋전 환경설정: 사용자이름, 이메일주소| |git add|추적하기 위해 준비| |git commit|commit: 일종의 도장찍는 행위| |git commit -m “커밋메세지”|commit + 기록메세지| |git log |commit 상세내용 확인| |git diff|어떤 파일이 어떤 변화가 있었는지 확인 | |git clone|복제하기|
- 기타
- i를 누르면 insert 상태로 변경이 됨
- 맥북의 Finder에서는 파일명 클릭하신 상태에서 Enter 키 누르시면 파일명 변경 가능
- gitignore: 쓸데없는 파일은 변경기록에 남길 필요가 없음
- git status 치면 git 이 안내조차 하지 않음
__
git 공간 설명
- git status 치면 git 이 안내조차 하지 않음
__
- Work directory 실제 작업하는 공간
- Stage Area 는 Index : add한 곳, Git 변경이력을 관리하는 부분 일종의 준비구역
- Repository : 변경이력을 저장한 저장소
- 저장소: log가 남는 저장소
- Local Repository : 외부에 위치하지 않고 작업하고 있는 내부 컴퓨터에 존재, git log해서 작업을 남기는 공간 log(기록으로 생각하면 될 듯) 인터넷이 없어도 상관없음
-
Remote Repository : 외부 서버에 위치하여 변경 이력을 기록하는 부분, 다중 사용자로부터 관리되는 각 로컬 저장소의 접점
git branch 명령어 정리
- git checkout -b 브랜치명 (git branch 브랜치명 기능과 git checkout 브랜치명 기능을 합친 명령어 = 체크아웃하면서 브랜치를 만들어달라는 뜻)
- git branch 가지의 목록들을 보여줌
- git branch 하면 지금 해당하는 브랜치 앞에 * 로 표시해준다
- git branch 브랜치명 가지(브랜치)를 하나 만들었음
- git checkout 브랜치명 가지(브랜치)로 갈아탑니다.
- git checkout master 마스터 브랜치로 돌아가기
- git branch -D 브랜치명 해당 branch 삭제하기
source Googling link
reset vs revert
- git reset을 명령어는 특정 커밋으로 되돌아갈 수 있는데, 되돌린 버전 이후의 버전들은 히스토리에서 삭제됩니다.
- git revert는 reset처럼 특정 버전으로 되돌아갈 수 있지만, 되돌린 버전 이후의 버전들의 이력은 남아있다는 점에서 차이가 있습니다.
- 공용 브랜치(origin/…)에서는 git reset 사용하지 말 것!
source Googling link
문제점 / 고민한 점 => 해결방법
- -t 옵션으로 추적 옵션 주는 git checkout -t origin/해당 브랜치 이름 : 해당 브랜치 이름은 fork해온 저장소에서 검색 가능
- clone 하고자하는 저장소가서 Fork
- 본인 저장소 코드를 클릭후 복사한 url을 터미널에 git clone + 복사한 url 터미널 명령어 입력
- cd 명령어로 clone되어 생긴 해당 폴더로 이동
- fork해온 저장소 가서 All branches 에서 브랜치 이름 확인
(로컬에는 메인 브런치만 있기 때문에 remote저장소에 해당 브랜치이름을 추적하는 로컬브렌치를 생성해야 한다.)
- conflict의 원인
- 각자 같은 파일명 같은 위치 코드를 상이하게 수정하여 merge 시도해서 충돌 발생
- conflict의 해결방법
- conflict되면 자동merge가 불가하므로 파일을 열어 수동으로 코드 수정을 해줘야한다. (conflict 수정내용 중 택 1)
- 터미널에서 git log에 들어가서 명령어 입력으로 다시 나오지 못했음
- q 로 나가기
- merge 헷갈리지 않는 법
- 수신할 브런치(master)에서 merge해야 한다.
- pull requests를 하려면 fork한 후 git clone을 해야한다.
git clone만 하고 git push하면 본인 원격저장소로만 업로드된다. - pull requests는 깃허브 웹페이지에서 가능
- pull requests 버튼 위치
- pull requests 위치는 한 군데만 있는 것이 아니다
Pull requests 클릭 후 New pull request 클릭 - Github 웹페이지 버튼 위치 익숙해지기
code ->overview->your branches->new pull request
- pull requests 위치는 한 군데만 있는 것이 아니다
- 이미 상대방에 의해서 merge가 된 상태이면 commit 추가할때 다시 PR을 보내야한다.
source Googling link1link2 link3
**테스트중
Leave a comment