개발 관련 입문용 지식

GIt & github 비전공자 입문(미완) / Linux,Unix(1차 수정)

영우는여전히 2023. 9. 27. 09:38

깃과 깃허브

 

Git

파격적인 사진 죄송합니다.

 
 
복사본을
만들지 않고
한 폴더 안에서
계속 수정 기록을
남길 순 없을까?
→ 리눅스 토발즈
 

 

 

 

리눅스 만든 사람 이 사람이 git 개발함
하나의 폴더 내에서 코드의 변경점을 기록하기 위해 git을 사용합니다.

-> 소스 코드 효율적으로 관리하기 위해 만들어진
분산형 버전 관리 시스템 (vcs: version control system)

-> 소프트웨어 개발 및 소스 코드 관리에 사용

-> 소스 코드 수정에 따른 버전을 관리해주는 시스템

 

즉,  git = 코드의 변경점 기록

 

git을 통해 진행중인 프로젝트를 공유,백업,관리

파일에 대한 모든 버전 기록 -> 관리가 용이해 짐

branch를 생성하고 이전 브랜치로 복구, 삭제, 병합이 가능

-> 하지만 브랜치는 로컬 저장소를 사용하기 때문에 다른 개발자와 실시간으로 작업을 공유할 수는 없다.

 


Github

-> 분산 버전 관리 툴인 Git을 사용하는 프로젝트를 지원하는 웹호스팅 서비스


웹 호스팅 : 웹 호스팅 혹은 공유 호스팅(Shared Hosting), 사이트 호스팅(Site Hosting)은
개별 홈페이지를 운영하는 사용자를 위해 서버 컴퓨터의 일부 공간을 임대해 주는 서비스이다.

 

-> 웹을 통해 언제, 어디서나 협업 프로젝트를 쉽게 진행할 수 있게 도와줌
-> 클라우드 서버를 사용해서 로컬에서 버전 관리한 소스코드를 업로드하여 공유 가능


Git 저장소 호스팅 서비스는 클라우드 기반으로 다른 사람과 소스코드 공유가 가능하며 git의 기본적인 기능을 확장하여 제공
클라우드 서버에 소스를 올리기 때문에 한 프로젝트에 여러 명의 사람이 참여하여 버전 제어 및 공동 작업이 가능하다.
서로의 작업물을 덮어씌우지 않고 코드 수정을 하고(병합), 새로운 브랜치를 생성할 수 있다.

 

→ github 원래는 백업이 목적이었다 → 근데 이게 공유도 가능한 클라우드가 되었다.

 

즉, 백업, 공유(협업 가능)

  1. 온라인 저장소에 백업 가능하다, 
  2. 코드 백업 했으니 다른 사람들에게 공유 가능하다.
    -> 협업 가능

깃 설치(window 기준)

-> 그냥 사이트 접속해서 대충 운영체제에 맞춰 설치하고 계속 넥스트 누르고 설치완료.

https://git-scm.com/downloads Stand-alone(다른 장치 도움 필요 없이 완비된 장치라는 뜻)

 

Git - Downloads

Downloads macOS Windows Linux/Unix Older releases are available and the Git source repository is on GitHub. GUI Clients Git comes with built-in GUI tools (git-gui, gitk), but there are several third-party tools for users looking for a platform-specific exp

git-scm.com

 

 

깃허브 가입 매우 간단합니다. 저 영어 하나도 못하는데 그냥 했어요.

쫄지 맙시다.


https://stillasever.tistory.com/18

 

필수 리눅스 명령어 정리(미완) [Linux]

필수 리눅스 명령어 정리1. pwd : print working directory 약자=> 현재 내가 작업하는 폴더 보여달라는 뜻2. ls : list의 약자=> 현재 위치의 모든 파일 및 폴더 리스트를 보여준다.3. ls -a :앞의 명령어(ex

stillasever.tistory.com

cd Desktop/git-test // 데스크탑 폴더 안의 git-test 폴더로 이동합니다
cd ../git-test // 현재 폴더의 한 단계 상위 폴더 안에서 git-test 폴더로 이동합니다

 

init

initialize(초기화 하다. 초기 설정하다.)
initinitialize(초기화하다, 초기 설정하다)의 준말입니다.
즉, 프로그래밍을 git으로 관리하기 위해 딱 한 번만 입력하면 되는 명령어
처음에 한번만 설정하면 된다.

master 에 대한 TMI

그냥 main 으로 이제 바뀌었으니까 main 하면 됩니다.

tmi 로 뭐 마스터는 뭐 좀 어감이 거시기 하다 어쩐다 합니다 그래서 바뀌었다고 합니다...


기본적으로 하는 방법

vsCode 에 폴더 추가 -> html 파일 하나 만들고 -> 터미널 실행 -> window 라 git bash 를 실행 해야 함

 

 

 

터미널 우측에 이렇게 떠야 함.

 

 

 

 

 

git bash : 터미널 에서 시작. 배쉬 터미널에서 시작하기로

git init : 이제부터 깃 쓸꺼야. 숨김파일 생기면서 깃 처리 들어올껄 알게 됨.(최초에 한번이면 된다)

git remote add origin [저장할 레포지토리 주소] : 로컬 저장소 , 깃 저장소 연결 → 어디다 저장 할 거야?

git pull origin main : 오리진 master 에서 pull 하기 (master or main)

git checkout -b [브렌치이름] :  switch or git에 새로운 브렌치 생성

git add . : 모든파일 업로드를 위해 모든 파일 지정인 것 같다.

(. → 점 이라는 것이 최상위를 말하는 것이다.  . 이라는 것은 최초의 의미를 가지는 것 같다
그래서 결국은 처음과 끝을 다 추가하게 된다는 의미로 쓰이게 된 듯)


git log 하고 q 누르면 나가짐
git commit -m "메세지" : 파일을 커밋한다. 전달할 메세지 입력

git push -u origin 브렌치 이름 : 수정한 코드 다시 push
-u  → 이거를 사용해서 입력하면 이제 git push 만 입력해도 바로 작동 되는 명령어.
git remote -v  이건 지금 연결되어있는 원격저장소를 확인해줘 라는 의미. → 자주 사용 함

git remote rm origin → 이거는 리모트 된 것 삭제

git stash
현재 디렉토리의 파일을 임시로 백업하고 깨끗한 상태로 돌린다.
버전관리 되는 대상 파일들을 임시저장 해둔다고 보면 된다.

git pull --rebase origin main

git branch -d 삭제할 브랜치 이름

cd [경로의폴더]
*** 경로 지정을 해줘야 한다.

git add main 

깃 인잇 이라는 것→ 초기화는 아니고 이거 쓸거야. 라는 의미다 사실
폴더 안에다가 쓰겠다고 저장을 하는 것이다.
숨김파일로 깃 파일이 생긴다. 그래서 이제부터 관리를 하는 것이다.

파일을 깃허브에 반영하기 위해 
git push 를 이용할 때 
git push -u "원격저장소" "현재 브랜치명"
와 같이 -u 옵션을 쓸때가 있다.
ex)
> git push -u origin master
 -u 옵션을 적어주면 앞으로 
master 라는 현재 브랜치를 자동으로 origin 이라는 원격저장소의 master 브랜치로 연결해
간단히 git push 만 입력하여 반영하거나
git pull 을 입력할 때 origin이라는 원격저장소의 master 브랜치를 
로컬 저장소의 master 브랜치로 merge 할수 있게 해주겠다는 의미이다.
따라서 이제 간단히 아래와 같은 식으로 원격저장소와 로컬 저장소를 자동 연결하여 사용할수 있다.
> git push
> git pull
메인 브런치 이름을 쓰기 시작함. 결론적으로 같다.
레포지토리 이그지스트 이런거 써있으면 확인

내꺼 변경사항 커밋 안하면 풀 안 됨
원격의 = remote


git commit -m “1.html 파일 저장”
메시지를 쓸 건데 내가

git add 2.html
둘 중에 하나만 지정해서 저장할 수 있음. 파일 지정 가능
애드는 지정, 커밋이 실제 저장

git add 1.html → 1쩜 에이치티엠엘 지정
git status → 위에 놈 지정 해제

git add . → 모든 놈 다 저장
git status → 다 해제

 

워킹 디렉토리
애드 하면 스태이징, 무대로 올라간다

레포지토리 커밋하면 저장소로 들어간다

git log → 무엇무엇 했는 지 볼 수 있다.
id (누런거 긴거) 통해서 바꾸고 확인하고 가능 난중에 해볼 것

깃 클론 이용하기
 
팀장이 액세스 막 들어가서 콜래보레이터스 들어가서 초대 해야 함
 
이메일 초대장도 수락을 해야 팀원들이 될 것이다.
 
그냥 팀장 페이지 들어가서 초록색 <> 코드 눌르고 
링크 복사하면 됨
 
새로운 폴더에 그냥 들어가서
git clone [링크] .
 
하면 전부 복사 됨
여기서는 깃 인잇 안해도 된다. (이미 .깃 폴더로 관리되고 있는 거 통쨰로 들어옴)
 
수정 후
add
commit
push
 
근데 다른 유저는 그대로 있음
 
깃허브에서는 바뀌었다고 해도 나한테는 안 됨
 
git pull 한다.
 
pull → 변경 된 것만 저장
 
변경 된 것을 가져온 다음에 푸쉬해야 함.
 
노란색 hint 제일 위에꺼 # merge 수정만 하면 된다

Local Repository : 내 PC에 저장되는 개인 전용 저장소
Remote Repository : 원격 저장소 전용 서버에 저장되는 저장소
Commit (커밋) : 변경 사항을 로컬 저장소에 기록하는 것
- commit -m "작업 수행 내용"
Push (푸쉬) : Github에 파일을 추가하거나 변경 내용을 저장하는 작업
Pull (풀) : Github에서 파일을 내려받는 작업


브렌치 라는 것을 이용한다. 00에서 → 마스터 

 

풀리퀘(풀 리퀘스트) 단계에서 거절도 되고 승인도 됨. -> 크리에이터 풀 리퀘스트. 눌러 병합 준비

메모 남기는 것이 있다. 필요한 메모를 남겨 버젼 기록을 하는 것

  
여기서 코드 리뷰를 하고 컨펌 머지를 하면 
마스터에 다 합쳐져 있다
깃 애드 쩜.
점은 전부를 뜻하는 것임.
깃 커밋 -ㅡ 메시지 암거나
스테이징 되어서 올라갈 준비된 것임.
리모트 주소 끝애ㅔ 01~ 그거 지워야 할 때 있다 -> 오류

 

 

최신화 안 되어있을 때는 콘플릭팅 된다 (충돌)


풀 땡겨올 때 충돌 되면 둘 중 하나로 알아서 선택해라

둘 중에 하나 수정 하면 된다.

>>>>>>>>>>>
===========
<<<<<<<<<<<<<

이놈들 삭제하면 된다.

충돌 안나게 하려면 그냥 다른 파일 다른 페이지에 다른 기능만 서로 분업 제대로 되면 그런다.

보통 근데 컨플릭 뜬다

 

 

예약어. → pull , commit, push
pull request
당기기로 요청
commit commit commit 계속 지점 지점 지점 생기는 것.
지점을 관리하기 위해서. 역할 기능