실무에서 자주 사용하는git 명령행

8108 단어 GitGitHub

버전 컨트롤의 개인적인 생각


기본적으로 역사를 바꾸고 싶지 않은 유형이다.태국의 수정도 특별히 rebase, 일반commit이다.
첫 번째push까지 다양한 시행착오가 있었기 때문에 현지 제출은 잠시 보류하고 있지만 목표가 있으면 무대에 올라 제출한다.
Git로 할 때 사용할 수 있는 오의 19개. 자주 검색하지만 저는 개인적으로 실제 업무에서 잘 사용하지 않습니다.
따라서 다음은 초보자~중급자에게 유용한 명령이다.
이런 시작은 애초에 총결된 것이었지만 실제로는 생각이 바뀌었다.
리베이스에서 온 forced push가 할 수 있는 파이가 되었다.단, fork의 Pull Request에만 해당합니다.자신의 자료고의 지점이기 때문에 깨끗이 정리한 후에 합병하는 것이 비교적 친절하다.

탈Git 초보자의 참고서


  • Git 저장소의 내용을 최대한 정확하게 파악
  • 이거 진짜 한번 읽어보는 게 좋을 것 같아요.
  • A successful Git branching model
  • 실무에서 자주 사용하는 Git 명령


    변경점을 부분적으로 이동하려는 경우


    처음에는 반복적으로 시도하고 목표가 있으면 제출하지만 같은 서류의 일부분만 제출하려고 한다.이럴 때 이거야.
    $ git add -p [ファイル]
    

    개요


    세그먼트를 나누기 위해 변경 점의 블록 = Hunk를 지정할 수 있습니다.
    각 행크가 어떻게 해야 하는지를 묻는 질문에 다음 옵션을 입력하여 무대에 올라갈지 여부를 결정한다.
    그나저나 ppatch 을 가리킨다.
      -p, --patch
           Interactively choose hunks of patch between the index and the work tree and add them to the index. This gives the user a chance to
           review the difference before adding modified contents to the index.
           This effectively runs add --interactive, but bypasses the initial command menu and directly jumps to the patch subcommand. See
           "Interactive mode" for details.
    

    탭 페이지에서 항목 작성 또는 편집


    탭 페이지에서 항목 작성 또는 편집
    의미
    함의
    y
    stage this hunk
    이 행크를 인덱스로 이동
    n
    do not stage this hunk
    무시해, 행크
    q
    quit; do not stage this hunk or any of the remaining ones
    이 행크는 나중에 무시하고 끝냅니다.
    a
    stage this hunk and all later hunks in the file
    이 행크와 그 후의 행크가 모두 무대에 올랐다
    d
    do not stage this hunk or any of the later hunks in the file
    이 행크는 앞으로 무대에 오르지 않는다
    g
    select a hunk to go to
    저장할 행크 선택
    /
    search for a hunk matching the given regex
    정규 표현식에 일치하는 행크 찾기
    j
    leave this hunk undecided, see next undecided hunk
    이 행크는 보류하고 다음 조작하지 않은 행크로 이동합니다
    J
    leave this hunk undecided, see next hunk
    이 행크는 남겨두고 다음 행크로 넘어갈게요.
    k
    leave this hunk undecided, see previous undecided hunk
    이 행크는 보류하고 이전의 미조작 행크로 이동합니다
    K
    leave this hunk undecided, see previous hunk
    이 행크는 보류하고 앞의 행크로 가세요.
    s
    split the current hunk into smaller hunks
    이 한크를 자동으로 분할합니다. (분할된 모든 한크에 대해 같은 조작을 합니다.)
    e
    manually edit the current hunk
    이 행크 수동 분할(다른 화면으로 이동)
    ?
    print help
    도움말 표시

    기세로 버티고 있는 행크를 작업나무로 돌려보내고 싶어요.


    아까 git add -p 추가 오류가 있으면 이렇게 돌려놓으세요.
    $ git reset -p [ファイル名]
    

    개요


    기본적으로 git add -p와 같은 사용 방법이지만 옵션e에서 수동으로 각 줄을 실행할 때 고유한 조작이 필요하다.e 시 다음 표시를 통해vi 등 편집기를 시작합니다.
    추가 섹션 + 을 작업 트리로 되돌리려면 행의 첫 번째 + 를 공간으로 바꿉니다.
    삭제 섹션 - 을 작업 트리로 되돌리려면 줄을 삭제합니다.
    편집이 완료되면 저장을 덮어쓰고 편집기를 종료합니다.
    # Manual hunk edit mode -- see bottom for a quick guide.
    @@ -21,6 +25,6 @@ class UsersController < ApplicationController
       private
    
       def method
    -    params.require(:user).permit(:name)
    +    params.require(:user).permit(:name, :avator)
       end
     end
    # ---
    # To remove '+' lines, make them ' ' lines (context).
    # To remove '-' lines, delete them.
    # Lines starting with # will be removed.
    #
    # If the patch applies cleanly, the edited hunk will immediately be
    # marked for unstaging.
    # If it does not apply cleanly, you will be given an opportunity to
    # edit again.  If all lines of the hunk are removed, then the edit is
    # aborted and the hunk is left unchanged.
    

    나는 라식 요청을 보고 싶어서 그것을 현지에 놓고 싶다


    검토를 요청하는 경우 요청이 변경된 환경을 로컬에서 보려고 할 수 있습니다.
    이럴 때 이거야.
    $ git fetch [remoteリポジトリ名(originなど)] pull/[id]/head:[ブランチ名]
    $ git branch
    * master
     [ブランチ名]
    $ git checkout [ブランチ名]
    

    개요


    로컬에서 추출 요청 지점을 제공하고 이 지점으로 체크아웃합니다.
    예를 들어 다음과 같은 플루릭이 있다면 git fetch origin pull/4893/head:check-confirmation-token-present 이다.

    참고 자료


    색인 내용의 차이 확인


    제출하기 전에 지금부터 무슨 제출입니까?자주 잊어버리는 사람한테는 이거야.
    $ git diff --cached
    

    개요


    저장소 (인덱스) 내용과 최신 제출 시점 사이의 차이를 표시합니다.

    작업 트리 내용 차이 확인


    다음은 어떤 변경을 잠시 연기해야 합니까?고민할 때가 이거야.
    $ git diff
    

    개요


    작업 트리 내용과 최신 제출 시점 사이의 차이를 표시합니다.

    로컬과 원격 마스터 지점에 차이가 있기 때문에 원격 내용을 강제로 동기화합니다.


    왜 원격과 차이가 있는지 모르겠지만 이걸로 원격의 내용을 맞추세요.
    $ git fetch origin
    $ git reset --hard origin/master
    

    과거 제출 메시지 변경하기


    다음 방법은 귀하가 눈치채거나 push하지 않은 경우에만 유효합니다.
    참고로 n HEAD를 1로 설정할 때 몇 번째로 제출한 숫자입니다.즉, git log --oneline 에서 위에서 세는 값이다.
    $ git log --oneline
    0237ff3 (HEAD -> hoge) 
    98071c1 途中のコミット
    8d99250 大切なコミットっ
    $
    $ git rebase -i HEAD~n
    ## コミットがコミット順の昇順でならんだviが開くので、変更したいコミット(今は8d99250とします)の行でpickをeditに変更して上書き保存します。
    ## すると...
    Stopped at 8d99250...  大切なコミットっ
    You can amend the commit now, with
    
      git commit --amend 
    
    Once you are satisfied with your changes, run
    
      git rebase --continue
    $
    $ git commit --amend -m '大切なコミット'
    [detached HEAD 2b6a3d2] 大切なコミット
     Date: Thu Feb 14 14:52:37 2019 +0900
     1 file changed, 84 insertions(+), 4 deletions(-)
    $
    $ git rebase --continue
    Successfully rebased and updated refs/heads/feature/AL-809.
    $
    

    개요


    그러니까 rebase.rebase 그래서 push 안 했을 때 쓴다.

    추가할게요.


    참고 자료

  • git에서 로컬을 원격 지점과 강제로 일치시킬 때
  • 좋은 웹페이지 즐겨찾기