git 명령어
git를 사용하면서 잊어버리는 명령들을 하나씩 기록해두고자 작성합니다.
“`git status“`
해서 원하는 파일을 찾고,
“`git rm –cached“`
으로 staging area
에 있는 파일을 지울 수 있습니다.
물론 실제 파일은 지워지지 않습니다.
git를 사용하면서 잊어버리는 명령들을 하나씩 기록해두고자 작성합니다.
“`git status“`
해서 원하는 파일을 찾고,
“`git rm –cached“`
으로 staging area
에 있는 파일을 지울 수 있습니다.
물론 실제 파일은 지워지지 않습니다.
예전 포스팅에서 git 서버 구축하고 ssh로 접속하는 것 까지 포스팅했었다.
그런데 linux에서 git를 커맨드로 직접 다루려니 비번을 자꾸 물어봐서 너무 스트레스를 받았다.
그래서 ssh를 패스워드 대신 공개키 기반 인증으로 사용하기로 했다.
1. 클라이언트 설정(리눅스)
$ ssh-keygen -t rsa -b 4096 -C "weep@weeppp.com"
본인의 이메일을 입력하고 위 명령 실행하면 키가 생성되는데
첫번째 입력은 key의 이름이고, 두번째는 비밀번호 설정 유무인데, 입력안할꺼면 엔터치면 된다.
git.key git.key.pub
필자는 git.key라는 이름으로 생성했더니 이렇게 두개의 파일이 생성되었다.
첫번째는 개인키고, 두번째 pub 확장자 파일은 public key, 즉 공개키이다.
두개의 파일을 ~/.ssh 폴더에 위치시킨다. 폴더가 없으면 생성한다.
다음으로 ssh-agent 실행유무를 확인하자.
$ eval $(ssh-agent -s) Agent pid 2933
위처럼 pid가 나온다면 정상적으로 실행중인 것이다.
$ ssh-add ~/.ssh/git.key
위의 명령이 정상적으로 실행되었다면 이제 password대신 rsa키를 이용해서 ssh접속이 가능해진 것이다.
2. 서버 설정
클라이언트의 설정만으로는 물론 서버에 접속이 가능할리가 없다.
클라이언트에서 생성한 공개키를 서버에 복사하자.
여기서는 귀찮으니까 vi를 이용해서 클립보드에 옮겼다.
$ vi ~/.ssh/git.key.pub
cat으로 해도 되고, 파일을 서버로 복사해서 “>>” 명령을 이용해서 append시켜도 되니 취향대로 한다.
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAgEAyKnGRx/DsvDonZQxe4r39XOxlm5BLhx+ksjEubNNq1PWL5Z5XP/96xzf7PwY6C4SXKRc/vnrgqynL4qmcWbU/qXgEqazybTp76egttjRXI7NVKOXeh02pTI67MiEJYRTxcgwP1FS1YerVnBZb79odnAVZZ0utyGU6HZIWgnEk0YL8waygHZFke1PWN+clZedtGDjhO1CfcxmDWmiWWJFtJ/DJHo3nFGP8noQy+Fm/LWSyxwvFqsL6vLi1zftC4NqMfwbvUDNXfaRFjkRdfiq1rgn4Sx/48cs2KhH2utZh5Q21wzFYdEAFAnSlDKtZDmukx/WfcrLkid+yG53Vkv0RmGBe+k1pOaa97X6WFG+7vHhYRY8anQIDie4A56MDfwGRZi0eklxXfVn2dtOKnSXLZxCMucADHJwaT0xE9ANUq7Je+jgoONsCyyDWVpPOMEVF49t4DKbEJux7Ncir0jJ4sid3u4upjar7QNZHnOLEfiOHDoJ2km4+fXizwBqwnPytmkEjbiGuxpQrymQfbcEHsXFjNhRgFTE4u3PYpRyMxaSpE7dHrfH3ZLPSjFtAh39l6Whe2hds3oNr3VwwpRJERzQERhicu6oKHP8s9r2Qlhb4dwYbbLV1Q/TuV1PcMWXUz/Z3SuKelZ9czebkkFhfJXzDDaBNEj4+9i+h1jFXqk= weep@weeppp.com
내가 생성한 공개키이다.
일단 본인의 공개키를 잘 복사해둔다.
여기서부터가 진짜 서버설정이다.
서버의 git user 의 홈디렉토리로 이동한다.
$ cd /home/git
$ mkdir .ssh $ touch .ssh/authorized_keys
git홈에 .ssh 디렉토리를 만들고 공개키들을 저장하는 파일을 만든다.
이때 root로 작업했다면 소유자를 변경해주자.
$ chown -R git.git /home/git/.ssh
authorized_keys에 복사한 공개키를 넣으면 끝.
이제 클라이언트에서 git push나 git pull을 해보자
비밀번호를 묻지않으면 성공이다.
나만의 기트 서버를 설치해보자. ssh와 연동하기
Git server 설정하기.
centos 에 설치하기
git server 의존 패키지 설치
yum install curl-devel expat-devel gettext-devel \ openssl-devel zlib-devel
git 설치
yum install git-core
리눅스에 git 계정 만들기
adduser git passwd git
cd /opt mkdir git chown git.git git
cd /opt/git sudo vi ReadMe
아래 내용을 위의 ReadMe파일에 넣어두고 앞으로 쭉 사용하자~
#create repository git init --bare --shared my_project.git chown -R git.git my_project.git
모든 유저들이 서버에 저장할 때 git계정을 이용할 수 있도록 설정해준다.
sudo vi /etc/passwd
위 명령 후 아래 내용을 찾는다.
git:x:502:503::/home/git:/bin/bash
which git-shell
명령으로 git-shell 위치를 확인한다.
/bin/bash 를 위에 나온 결과값(여기서는 /usr/bin/git-shell)로 변경한다
변경 후 부터는 git 계정은 Git 저장소에 Push하고 Pull하는 것만 가능하고 리눅스의 쉘에는 접근할 수 없다.
——– 샘플 프로젝트 설정 ——–
서버 설정이 끝났으니 샘플 프로젝트를 하나 만들어보자.
방금 만들었던 ReadMe를 읽고 아래 명령을 처보자.
cd /opt/git sudo git init --bare --shared my_project.git sudo chown -R git.git my_project.git
클리이언트에서 나의 git 서버와 연동을 해본다.
SourceTree를 사용할 경우
“복제 / 생성” -> “소스 경로 / URL” 에 아래 값 입력
ssh://git@weeppp.com/opt/git/my_project.git
포트가 다를 경우
ssh://git@weeppp.com:[PORT]/opt/git/my_project.git
이제 git를 이용하면 된다.