[2024.08.06 TIL] git과 github

박지영·2024년 8월 6일
0

Today I Learned

목록 보기
5/67

git

로컬에서 자신의 개발 소스에 대한 관리가 가능,

remote repository에 영구적인 백업과 협업이 가능

가장 많이 사용 되는 버전 관리툴.

Repository - 파일을 버전으로 만들어 저장.

commit - git에서는 버전을 만드는 것을 의미.

branch = 독립적인 작업 공간 - 변경 사항 분리하여 관리 가능

  • 자주 사용하는 명령어

    //리눅스 명령어
    //개인
    git init 깃 저장소 생성(.git)
    git add .파일 이름 - 수정할 파일 선택
    git commit -m(메시지) - 선택한 파일 업로드 확정
    git push -u(upstream) origin(깃허브) main - 실질적으로 업로드 취소x but 되돌리기 가능
    
    //협업
    git clone <URL> - 원격 저장소에 있는 코드 받아올 때(처음만)
    git pull <name> - 받아온 코드 중 변경 사항만 받아올 때
    git branch - 생성된 브랜치 확인
    git checkout - 브랜치 변경할 때
    git merge - 다른 브랜치에 현재 브랜치를 합칠 때(사용x / 보통 pull request 사용)
    
    ls 조회  
    ls -l 자세히 조회 (.git 조회x)
    ls -a 모두 조회 (.git 조회o)

github

git의 서비스를 기반으로 한 개발자 플랫폼이며 웹 기반 호스팅 서비스를 제공한다.

주요 특징으론 버전 관리, 협업, 이슈 트래킹, 웹 호스팅, 오픈 소스 등이 있다.

오늘 팀 프로젝트에서 배운 점

데이터베이스에 이미지 파일이 정상적으로 업로드 되도록 수정하고 있었는데

이유는 파일을 업로드 할 경우에 권한이 없어 업로드 되지 못하는 문제였다.

데이터베이스의 문제인 줄 알고

firebase cli도 받고 cors 작업도 해봤는데 적용이 되지 않았다.

문제는 storage의 권한이 였는데

이미지를 storage에 저장한 후 데이터베이스에 저장되는 줄 모르고 있었다.

결국

rules_version = '2';

service firebase.storage {
  match /b/{bucket}/o {
    match /{allPaths=**} {
     allow read, write;
    }
  }
}

storage의 권한을 모두가 읽고 쓸 수 있도록 임의로 고쳐놓았다.

밑은 이미지 업로드 수정한 코드이다.

// Firebase 인스턴스 초기화
        const app = initializeApp(firebaseConfig);
        const db = getFirestore(app);
        const storage = getStorage(app);

        //추가 버튼 누를 시
        $("#registerbtn").click(async function () {
            //각 항목의 value 저장
            const image = $('#image')[0].files[0];
            const name = $('#name').val();
            const mbti = $('#mbti').val();
            const email = $('#email').val();
            const content = $('#content').val();
            const github = $('#github').val();
            const blog = $('#blog').val();

            let imageUrl = '';

            // 이미지 파일이 있는 경우에만 업로드
            if (image) {
                const storageRef = ref(storage, `images/${image.name}`);
                await uploadBytes(storageRef, image);
                imageUrl = await getDownloadURL(storageRef);
            }

            let doc = {
                'image': imageUrl,
                'name': name,
                'mbti': mbti,
                'email': email,
                'content': content,
                'github': github,
                'blog': blog
            };

            await addDoc(collection(db, "members"), doc);
            alert('저장 완료');
            document.location.href = 'index.html';
        });
profile
신입 개발자

0개의 댓글