깃허브 치트 시트

10506 단어 gitgithub

깃허브 치트 시트



프로젝트 시작



분기된 프로젝트 또는 기존 프로젝트

cd ~/GITHUB/manolosolalinde
git clone <url>
git config credential.helper store


원격 저장소 생성

cd ~/GITHUB/manolosolalinde
mkdir <reponame>
# deprecated: curl -u '[email protected]' -d '{"name":"'"${PWD##*/}"'"}' https://api.github.com/user/repos
# token from https://github.com/settings/tokens
curl -i -H "Authorization: token <GET FROM https://github.com/settings/tokens> " \
    -d '{
        "name": "'"${PWD##*/}"'", 
        "description": "This is your first repository",
        "homepage": "https://github.com",
        "private": true,
        "has_issues": true,
        "has_projects": true,
        "has_wiki": true
        }' \
    https://api.github.com/user/repos
echo "# TODO Readme" >> README.md


로컬 리포지토리를 시작하고 첫 번째 커밋을 푸시합니다.

git init
git config credential.helper store
git add .
git commit -m "first commit"
git remote add origin https://github.com/manolosolalinde/${PWD##*/}.git
git push -u origin master


로컬 저장소 변경:

git remote show origin
git remote set-url origin https://github.com/manolosolalinde/${PWD##*/}.git


모든 기록 삭제




cd <localrepofolder>
rm -rf .git
Start Repository (as above)
git push -u --force origin master


전체 원격 저장소 삭제




cd <REPONAME>
curl -X DELETE -H 'Authorization: token replacewithtoken' https://api.github.com/repos/manolosolalinde/${PWD##*/}


삭제 인증 토큰 가져오기
https://developer.github.com/v3/oauth_authorizations/#create-a-new-authorization

curl -v -u '[email protected]' -X POST https://api.github.com/authorizations -d '{"scopes":["delete_repo"], "note":"token with delete repo scope"}' >> token.json


초기 글로벌 설정




git config --global user.name "Manuel Solalinde"
git config --global user.email "[email protected]"


UNTRACK FILES는 이미 .gitignore를 기반으로 git 저장소에 추가되었습니다.




git rm -r --cached .
git add .
git commit -m ".gitignore fix"



rm is the remove command
-r will allow recursive removal
--cached will only remove files from the index. Your files will still be there.
The . indicates that all files will be untracked. 
You can untrack a specific file with git rm --cached foo.txt (thanks @amadeann).

일반 목적



http://www.cheat-sheets.org/saved-copy/github-git-cheat-sheet.pdf
git config --global user.name "Manuel Solalinde"\
커밋 트랜잭션에 첨부할 이름을 설정합니다.
git remote add origin [email protected]:manolosolalinde/newrepo.git\
기존 저장소에 대한 원본 추가
git config --global user.email "[email protected]"\
커밋 트랜잭션에 첨부할 이메일을 설정합니다.
git init [project-name]\
지정된 이름으로 새 로컬 저장소를 생성합니다.
git clone [url]\
프로젝트 및 전체 버전 기록을 다운로드합니다.
git status\
커밋할 모든 새 파일 또는 수정된 파일을 나열합니다.
git add [file]\
버전 관리를 위해 파일을 스냅샷합니다.
git reset [file]\
파일을 언스테이징하지만 내용은 보존합니다.
git diff\
아직 준비되지 않은 파일 차이점 표시
git diff --staged\
스테이징과 마지막 파일 버전 간의 파일 차이점 표시
git commit -m "[descriptive message]"\
버전 기록에 파일 스냅샷을 영구적으로 기록
git branch\
현재 저장소의 모든 로컬 분기를 나열합니다.
git branch [branch-name]\
새 분기를 만듭니다.
git checkout [branch-name]\
지정된 분기로 전환하고 작업 디렉토리를 업데이트합니다.
git merge [branch]\
지정된 브랜치의 히스토리를 현재 브랜치에 결합합니다.
git branch -d [branch-name]\
지정된 분기를 삭제합니다.

태그



태그에 대한 추가 정보: https://git-scm.com/book/en/v2/Git-Basics-Tagging
git tag -a v1.4 -m "my version 1.4"\
태그 생성
git tag모든 태그 나열
git tag -l "v1.8.5*"\
v1.8.5
v1.8.5-rc0
v1.8.5-rc1
해당 이름을 가진 모든 태그 확인
git show v1.4\
태그 정보 표시
git log --graph --decorate --oneline지점 내역 정보 표시

여러 버전의 프로젝트 작업



흥미로운 게시물: https://stackoverflow.com/questions/12153405/how-to-manage-multiple-versions-of-a-project

예시



제 경우에는 기본이 동일하지만 각 버전마다 몇 가지 기능이 다른 동일한 소프트웨어의 두 가지 버전이 있습니다.

그래서 두 개worktree를 만듭니다. 즉, 마스터 옆에 두 개의 관련 장기 실행 분기를 만듭니다.

    $git worktree add -b version-silver ..\version-silver master
    $git worktree add -b version-gold ..\version-gold master


그럼 나는 :

    $git branch
    master  # base stuff here
    version-silver # some normal features
    version-gold # some better features


하나의 저장소가 있지만 위의 각 분기에 대해 서로 옆에 3개의 개별 폴더가 있습니다. 그리고 마스터에서 공통 변경을 수행하십시오. 그런 다음 다른 두 버전과 병합하십시오.

    cd master
    vim basic.cpp
    git add .
    git commit -m "my common edit on basic.cpp"
    cd ..\version-silver
    vim silver.cpp
    git add .
    git commit -m "my specific edit on silver.cpp"
    git merge master # here i get the basic.cpp latest changes for silver project
    cd ..\version-gold
    git merge master # here i get the basic.cpp latest changes for gold project


브랜치 A에서 브랜치 B로 마지막 커밋의 변경 사항만 복사



Stackoverflow - Commit to multiple branches at the same time

git checkout A
git commit -m "Fixed the bug x"
git checkout B
git cherry-pick A


문제



vscode 및 자격 증명 문제



https://stackoverflow.com/questions/34400272/visual-studio-code-always-asking-for-git-credentials

다음과 같이 자격 증명을 설정할 수 있어야 합니다.

git remote set-url origin https://<USERNAME>:<PASSWORD>@bitbucket.org/path/to/repo.git


다음과 같이 원격 URL을 얻을 수 있습니다.

git config --get remote.origin.url


내 문제는 다음으로 해결되었습니다.

cd "C:\Program Files\Git\mingw64\libexec\git-core"
git-credential-manager.exe uninstall

좋은 웹페이지 즐겨찾기