chsop / team4_wanted_onboarding

Team 4 온보딩 코스 과제를 위한 main 저장소입니다.
7 stars 7 forks source link

[Week1/조유진] 간단한 git/github #27

Closed fhsi1 closed 3 years ago

fhsi1 commented 3 years ago

✅ git clone

fork 한 본인의 repository 를 git clone 하기

git clone https://github.com/[본인ID]/team4_wanted_onboarding.git

ex. 1

✅ cp

본인의 작업물이 있는 위치에서 작업물을 git clone 한 디렉토리로 복사(cp)하기

⚠️ 해당 주차 디렉토리로 넣기

cp [작업물 이름] [클론한 디렉토리 내부의 해당주차 디렉토리의 경로]

ex. 2 ➡️ 테스트를 위해 작업물이 test.txt 라고 가정하겠습니다.

cp test.txt ./team4_wanted_onboarding/weekN

cf. ls → 현재 디렉토리의 내용을 확인하는 명령어 ls -al → 현재 디렉토리의 내용을 전부 리스트의 형태로 확인하는 명령어

➡️ 반영 결과 image image

✅ git status

clone한 디렉토리에서 git 상태 확인(git status)하기 image

✅ git add

github 에 올릴 작업물 스테이징(git add)하기

git add [작업물 이름]

만약 git status 로 확인했을 때, 본인이 복사해온 작업물만이 빨간 글씨로 떠있다면, git add * 명령어로 간단하게 스테이징해도 된다.

cf. git add *git status 에 빨간 글씨를 모두 스테이징하겠다는 의미

➡️ git add 반영 결과 (git status로 확인) image

⚠️ git add 를 잘못했을 때 ➡️ 스테이징되어있는 전체 파일을 취소 : git reset ➡️ 특정 파일의 스테이징 취소 : git reset HEAD [작업물 이름] (git status 했을 때, 빨간 글씨로 돌아간다.)

✅ git commit

스테이징 되어있는 작업물에 커밋 메세지와 함께 커밋하기

git commit -m "[CREATE] test.txt"

성공적으로 커밋에 성공하면, git status 로 확인했을 때,

커밋이 몇 개 되었는지와 스테이징된 파일이 없다(working tree clean)고 나온다.

ex. image

⚠️ git commit 를 잘못했을 때 ➡️ 스테이징되어있는 전체 파일을 취소 : git reset HEAD^ (뒤의 꺽쇠의 갯수에 따라, 최신 커밋을 필요한만큼 순서대로 삭제할 수 있다.) ex. image

✅ git push

fork 한 본인의 repository 에 올리기(git push)

git push origin main

cf. 클론한 fork 했던 본인의 repository 의 이름 origin image

cf. git log - 지금까지의 깃의 기록을 알 수 있다. (q를 누르면 닫을 수 있다.) image

✅ pull request 보내기

fhsi1 commented 3 years ago

적다보니 분량이 좀 많아보이네요 ㅎㅎ.. 그래도 나름대로 자세하게 적었으니 도움이 되었으면 좋겠습니다!😁

jaehwan2 commented 3 years ago

꼼꼼한 안내 감사합니다!! 잘 따라해보도록 하겠습니다~!

jaehwan2 commented 3 years ago

유진님 덕분에 제가 작업한 디렉토리에서 팀 Repo로 풀리퀘 할 수 있었습니다. 감사합니다!!

hellojun12 commented 3 years ago

깃에대한 부담감이 있었는데 한결 나아졌습니다. 정리해주셔서 감사합니다!

chsop commented 3 years ago

최고예요 유진님!!

jaehwan2 commented 3 years ago

@fhsi1 유진님, Git 원격 저장소의 내역을 로컬 저장소에 반영할 때 git clone을 다시 해줘야하나요? git pull origin main 명령어로 추가된 내용만 가지고 올 수 있을까요? git pull origin main으로 업데이트된 내용만 가지고 올 수 있다면, 로컬 디렉토리의 경로를 Clone한 Repo로 맞춰줘야하나요....?

fhsi1 commented 3 years ago

@jaehwan2 우선, 말씀해주신 git 원격 저장소가 메인으로 저희가 pull-request 를 보내는 저장소인지, fork 해온 각 개인의 저장소인지 잘 모르겠습니다..ㅠ

fork 해온 각 개인의 저장소라면, 로컬에 기존에 git clone 해 놓은 디렉토리가 있을텐데요, 그 디렉토리에 새로운 파일을 만들고 작업했다면 그 상태에서 git status를 확인하고, 기존에 했던 방법으로 진행해주시면 됩니다.

만약 로컬의 기존 git clone 디렉토리에서 작업을 한 게 아니라면, cp 해와서 동일한 방법으로 진행해주시면 됩니다.

여기서 중요하다고 생각되는 점은 git status 와, git remote -v, git log 와 같은 확인하는 기능들을 사용하셔서, 혼동이 없도록 하는 것 같습니다.

git pull 에 대해서 말씀해주셨는데, 이 명령어도 어떤 상황에서 쓰시려고 하시는지 구체적으로 말씀해주시면 좋을 것 같습니다!

jaehwan2 commented 3 years ago

업데이트된 저희 Repo의 파일을 제 로컬 디렉토리로 가지고 오려는데, git pull 동작이 안되어서 여쭤봤습니다. 답변 주신 참고해서 다시 한번 시도해보도록 할게요. 자세한 답변 감사합니다 !!

fhsi1 commented 3 years ago

@jaehwan2 방금 말씀해주신대로라면, git pull 보다는 git clone 이 맞는 것 같습니다!

git pull 은 로컬 디렉토리, 즉 .git 이 붙어있는 상태의 로컬 디렉토리일 때, 변경했던 적이 있는데, 로컬에 반영이 되어있지 않을 때 사용하는 기능입니다.

제가 아는 협업 방법은 두 가지인데요, 한 가지는 단일 저장소에서 협업하는 것이고, 다른 한가지는 저희처럼 fork 해와서 협업하는 것입니다. 저희는 fork 해서 contributor 형태로, 기여하는 것이죠.

그렇기에 저희가 pull-request 요청을 하는 저장소를 로컬로 가져오시려면, git pull 보다는 git clone이 적합하다고 생각됩니다.