about.
Git & Github
GitHub에 올리는 과정
원하는 폴더에서 Git 초기화를 하면 관리 시작
Git 초기화를 하면 .git이라는 숨겨진 폴더가 만들어진다.
(로컬 저장소에 내가 만든 버전정보, 원격 저장소 주소 등이 저장된다.)
원격 저장소에서 내 컴퓨터로 코드를 받아오려면 로컬 저장소가 자동으로 생긴다.
우선 git 에게 내가 누구인지 알려주어야 한다.
즉 컴퓨터안에서 저장/수정하는 로컬저장소와 사이트에서 만드는 repository(원격저장소) 사이에서 서로 교류하는 것이다.
그리고 만들던 코드파일(숨겨진 git파일) 에 GitHub 저장소를 알려주자.
(+ 파일도 commit해보기)
이제 git에 관한 정보들을 등록 해주었으니 코드를 push 해보자
명령어 (과정) 정리
git config --global user.name "이름"
git config --global user.email "깃허브 메일주소" //매번 물어보는 귀찮음을 피하기 위해 설정.
mkdir ~/MyProject // 로컬 디렉토리 만들고
cd ~/myproject // 디렉토리로 들어가서
git init // 깃 명령어를 사용할 수 있는 디렉토리로 만든다.
git status // 현재 상태를 훑어보고
git add 화일명.확장자 // 깃 주목 리스트에 화일을 추가하고 or
git add . // 이 명령은 현재 디렉토리의 모든 화일을 추가할 수 있다.
git commit -m “현재형으로 설명” // 커밋해서 스냅샷을 찍는다.
git remote add origin https://github.com/username/myproject.git
// 로컬과 원격 저장소를 연결한다.
git remote -v // 연결상태를 확인한다.
git push origin master // 깃허브로 푸시한다.
GitHub에 다른사람의 소스 가져오기 클론(clone)
Github의 myProject 저장소 받아오기
끄..끝
push 하려면 해당 branch 기입후 push
브랜치(branch)
한줄로 쌓으면 겹칠텐데.....
A유저
B유저
여러줄로 쌓으면 된다 (갈라져서 커밋을 한다.)
한줄에서 작업하면 충돌이 일어 날수 있다.
똑같은 코드를 동시에 고칠 가능성이 생기기 때문에....
나중에 합쳐야 한다. 그러나 충돌이 나더라도 합치는 시점에 명시적으로 충돌을 해결할 수 있다.
위에 사용한 이 명령어는 master 브랜치(기본으로 만들어져있음)에 커밋을 푸시하라는 뜻이다.
만약 브랜치를 새로만들고 이동하려면 다음과 같다.
가리키는 local head가 새로만든 브런치를 가르키게되고 push를 하면 새로운 branch의 길로 달리게 된다
Github 에서도(원격저장소) 추가된 branch가 있다고 알려주고있다.
그림을 보면 branch (feat/main-page, master) 들의 코드를 각각 볼수가 있다.
이런 가지형식으로 브런치를 사용하여 마인드맵처럼 가지를 뻗으며 나갈수 있다.
두 버전 합치기(Merge)
master branch에 => 최신 branch 커밋을합치려 한다면.....
3.합쳐진 결과는 currentBranch에 master와 합쳐져서 진행하게 된다
만약 합치다가 충돌이 일어난다....(같은 요소 다른내용....)
=>이렇게 다른 요소를 친히 알려준다.(보고해결)
컨플릭트(conflict)
처음 remote 설정후에 dexi clone 하려고하면 Access denied 될거다... (private 상태이고 그 shh 키는 방장? 이 생성 한 것을 입력해주어야....
Gitlab 사용시..
remote 설정, 생성, branch는 거의 같다.
참고로 ssh는 SSH는 안전한 원격 통신을 위해 사용된다 통신에서 데이터를 암호화하는 과정이 없기 때문에 같은 네트워크 상의 누군가가 통신을 가로챈다면 통신 내용을 모두 엿볼 수 있다는 문제가 존재하였다. 이러한 보안 상의 문제로 SSH가 설계된 것이다. SSH는 암호화 기법을 사용하기 때문에 누군가 통신을 가로챈다고 하더라도 암호화된 텍스트로 보이게 된다// secure shell 의 약자