본문 바로가기
✍ 따뜻한 개발 공부

[깃허브] 터미널로만 깃, 깃허브 작업해보기 (브랜치 생성, 풀,푸쉬 다해봥~>_<) / 소스트리 꿀 그만 빨고 공부하긔 / 깃 정리

by 따따시 2023. 1. 2.

 

git remote add origin https:// 레포지토리 유알엘 : 생성 된

>> error: remote origin already exists.

>>해결법>>  git remote remove origin  

 

현재 폴더 확인 터미널 명령어 :pwd

>> /Users/user/Desktop/myWorkSpace/gitPractice 라고 뜸

 

git branch 

>> 현재 내가 어떤 브랜치에 있는지 뜬다롱

 

 git branch feature/test-branch

>> 새로운 브랜치 생성

 

 git checkout feature/test-branch

>> 해당 브랜치로 체크아웃하기

 

git add .

>> 현재 위치하고 있는 브랜치의 '모든' 작업 내역들 저장 ㅇ_<

 

git status

>> 현재 add된 상태를 확인할 수 있음

 

git checkout -b feature/new-test-branch

>> 새로운 브랜치 생성과 동시에 해당 브랜치로 체크아웃하기

 

git branch -D (브랜치명)

>> 브랜치 삭제

 

git branch -m [브랜치명] [새로운 브랜치명]

>> 브랜치명 바꾸기

 

ㅈㅇ님께 배우다가, 얻은 꿀팁들 ❤️

+) 컨트롤 + 쉬프트 + 물결 : vs code에서 터미널 열림
+) items 에서 code . 치고 엔터치면 vs code 열리게 생성해주심!! 

 

 


추가 개념정리


Local : 내 컴터

Remote : 원격의 환경(git server nas)에 올려 놓고 동시 공유 (origin)

branch : 최초 클론 시, Master(Main) 브랜치로 경로가 잡혀 있으며, Master(Main) 브랜치에 작업 할 경우 다른 팀원의 작업 사항들 (원본)에 문제가 생길 수 있기에, 본인이 작업 할 브랜치를 생성 후 작업 시작 (중요)

 

PR (Pull Request) : Push 된 commit 사항을 깃헙에 공유하는 작업.
팀원들과 프로젝트 공유를 하면서 최종 업데이트가 되기 위해서는 Merge* 의 단계가 필요한데, Merge가 되기 위해 업무 사항을 깃헙에 공유 할때 작업사항을 공유하는 행위

Merge: PR을 올린 뒤 '최종 승인'이 났을 경우 Merge가 되는데, 기존의 Repository에 PR을 올린 작업사항들이 업데이트가 되는 상황
작업 사항이 Merge가 되면, 다른 팀원들은 PR을 올리기 전에 업데이트 된 머지 사항을 자신의 Local에서도 최신화를 시킨 뒤 다시 푸쉬를 해야함.

 

참고블로그

 


전체적인 git플로우 정리


 

git commit -m "저장 사항 메시지 작성" :
commit 후, push 하기 전에 다른 팀원의 작업이 Master(main)에 머지가 되었다면 Master(main)로 이동 후, git pull origin main 명령어를 사용하여 최신 main을 만들어야함 + pull 받은 작업사항을 자신이 작업한 브랜치로 이동하여 git merge main으로 브랜치에도 최신화 시킨 후 push진행!

git branch feature/(내브랜치명) 
git checkout feature/(내브랜치명)

git branch 

git add . 

git commit -m "커밋 메시지" 

* ) 다른 사람들이 master에 merge해놓은게 있을 수 있으니 푸쉬하기전 master로이동하기

git checkout master : 메인 브랜치로 이동

git pull origin master : 다른 사람들의 merge 내역을 로컬의 master(Main)브랜치에 최신화 하기 위한 작업

 

git checkout feature/(내브랜치명) : 자신의 Local master(Main)브랜치에 최신화 시킨 작업사항들을 본인이 작업했던 작업사항에 최신화 시켜야 하기 때문!! 

git merge master(Main) : Master(Main)브랜치의 변동사항을 자신의 브랜치로 merge 하기

git add . 

git commit -m "커밋 메시지" 

git push -u origin feature/(내브랜치명) : 찐또배기 원격 내브랜치명의 브랜치가 생성되며 거기 push 된다.

( -u를 붙였던 이유는 아래 써놨음 )

PR(Pull Request) 작성 : 깃허브가서 PR 작성하기


실제 작업하면서 배우고 정리한 내용 👇👇👇👇

처음에 자꾸 요런 에러들이 났었는데, 알고보니 웬걸, git이 엉뚱한 곳에 생성이 되어있어땅

(심지어 바탕화면에 있었음)

git add .
>>warning: adding embedded git repository: Desktop/myWorkSpace/gitPractice/codingtest 라는 warning 뜸
>>해결 >> ls -a 로 모든 파일 확인해주고
>>        >> rm -rf .git 로 폴더 내 .git 파일 삭제
>>        >> 이러고 git status라고 입력하니 아래와 같은 오류 발생
>> could not open directory '.Trash/': Operation not permitted 라는 에러 발생
>> 해결 >>  알아보니 사용자가 필요하지 않는 데이터까지 제공해주기 때문에 이런일이 발생하고, git init을 사용하게 되면 초기화가 되면서 잘나온다고 하는데
>>        >> git init 을 입력햇더니 
>>       >> Reinitialized existing Git repository in 라고 메세지 떴음

터미널로만 깃을 해보는게 거의 처음이다보니 어디서부터 문제인지 헤매고 있었는데

진짜 너무 천사시면서 똑똑하신 팀원분이 처음부터 어디 부분이 문제인지 같이 짚어주시면서 연결을 성공시켰다

(진짜 최고 알차고, 너무 행복한 신년 >_< 천사ㅈㅇ님 너무 감사합니당)

 

각설하고 오늘 배운 부분들 정리해보면, 먼저 go - Go to Folder로 가서

 

 

물결을 치면 '루트 디렉토리'로 이동을 하게된다. ( ~ ) 아예 최초에 ~ 인 상태!!!

 

 

여기에서  [ command + shift + . ] 를 누르니 전체 폴더가 조회되었다.

여기서 .git 이 조회되었는데, 이걸 삭제해주기!!! 

 

 

 

iterm를 아예 껐다가 실행하면 ~로 되어있는데, cd Desktop 으로 경로이동해주고

ls 

라고 검색하니

Desktop에 있는 폴더들이 좌라라락ㄱ 떴다.

➜  ~ cd Desktop
➜  Desktop ls
PyCharm.app
Screen Shot 2023-01-02 at 1.31.29 PM.png
Screen Shot 2023-01-02 at 12.37.29 PM.png
Screen Shot 2023-01-02 at 12.41.12 PM.png
Screen Shot 2023-01-02 at 4.24.25 PM.png
Visual Studio Code.app
ect
heytest
myNote.docx
myNote.pdf
myWorkSpace
python
reactNative
test1.png
test2.jpg
test3.png
➜  Desktop cd myWorkSpace
➜  myWorkSpace git clone https://github.com/ddoqi/codingtest.git
Cloning into 'codingtest'...
remote: Enumerating objects: 4, done.
remote: Counting objects: 100% (4/4), done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 4 (delta 0), reused 4 (delta 0), pack-reused 0
Receiving objects: 100% (4/4), done.
➜  myWorkSpace ls
codingtest
➜  myWorkSpace cd codingtest
➜  codingtest git:(master) code .
zsh: command not found: code
➜  codingtest git:(master) code .
➜  codingtest git:(master)

이 좌라라락ㄱ 뜬 곳에서, 내가 git 작업을 하고싶은 폴더로 이동을 해주었고( 그게 난 myWorkSpace 였음)

git 명령어를 통해 clone 작업을 해왔다.

 

git clone https://github.com/ddoqi/codingtest.git

 

 

⭐️⭐️ 여기서 이렇게 clone을 해주면 git이 생성되는 곳은 myWorkSpace가 아니라, 새롭게 클론해오면서 생성된 폴더 (codingtest)에서 깃이 시작되는 것

 

 

 

새로운 내용으로 커밋 연습을 하기 위해, touch로 폴더 하나 만들어주고

새로운 브랜치생성과 동시에 해당 브랜치로 체크아웃을 해주었다.

git checkout -b feature/test-branch

 

그 다음 변경된 내용들을 stage에 올려주기 위해

git add . 

 

를 해주고~

 

git commit -m "0102 init commit"

 

깃 커밋 메시지와 함께 커밋하기 (ㅇ_< 캡쳐 져장~)

 

git push -u origin feature/test-branch

 

마지막으로 feature/test-branch 원격 브랜치를 만들며, 해당 브랜치에 푸쉬 해주는 작업하면 끄읕~~~


+ ) 파일을 깃허브에 반영하기 위해 git push 를 이용할 때 git push -u "원격저장소" "현재 브랜치명" 와 같이 -u 옵션을 쓸때가 있다.

$ git push -u origin master

 -u 옵션을 적어주면 앞으로, feature/test-branch 라는 현재 브랜치를 자동으로 origin 이라는 원격저장소의 feature/test-branch 브랜치로 연결해라는 뜻~~


<아래는 오늘 터미널로 연습한 기록들>

➜  codingtest git:(master) touch test0102.js   
➜  codingtest git:(master) ✗ git checkout -b feature/test-branch    
Switched to a new branch 'feature/test-branch'
➜  codingtest git:(feature/test-branch) ✗ git add .                          
➜  codingtest git:(feature/test-branch) ✗ git commit -m "0102 init commit"
[feature/test-branch 68286c7] 0102 init commit
Your name and email address were configured automatically based
on your username and hostname. Please check that they are accurate.
You can suppress this message by setting them explicitly:

    git config --global user.name "Your Name"
    git config --global user.email you@example.com

After doing this, you may fix the identity used for this commit with:

    git commit --amend --reset-author

 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 test0102.js
➜  codingtest git:(feature/test-branch) git config --global user.name 내깃헙이름 
➜  codingtest git:(feature/test-branch) git config --global user.email 내깃헙주소
➜  codingtest git:(feature/test-branch) git commit -m "0102 init commit"
On branch feature/test-branch
nothing to commit, working tree clean
➜  codingtest git:(feature/test-branch) git push -u origin feature/test-branch

Enumerating objects: 4, done.
Counting objects: 100% (4/4), done.
Delta compression using up to 8 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 320 bytes | 320.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
remote: 
remote: Create a pull request for 'feature/test-branch' on GitHub by visiting:
remote:      https://github.com/ddoqi/codingtest/pull/new/feature/test-branch
remote: 
To https://github.com/ddoqi/codingtest.git
 * [new branch]      feature/test-branch -> feature/test-branch
branch 'feature/test-branch' set up to track 'origin/feature/test-branch'.
➜  codingtest git:(feature/test-branch)

 

 

댓글