달나라 노트

7. help 키워드로 명령어들에 대한 상세 설명 보기 본문

Github

7. help 키워드로 명령어들에 대한 상세 설명 보기

CosmosProject 2021. 1. 15. 21:19
728x90
반응형

 

 

 

기존의 commit

한번 지금까지 봐왔던 파일의 생성 또는 수정부터 commit까지의 과정이 어떻게 되는지 봐봅시다.

1. cd (디렉토리)

일단 cd 명령어를 이용해서 git init이 된 폴더로 이동합니다.

2. vim f1.txt

vim 명령어를 이용해서 f1.txt파일을 생성하거나 이미 있던 f1.txt 파일의 수정을 진행합니다.
또는 그냥 다른 편집기를 이용해서 git init이 된 폴더에 있는 파일들의 변경을 일으킵니다.

3. git add f1.txt

여기선 변경이 일어난 f1.txt 파일을 stage로 올리기 위해 add 명령어를 사용합니다.

4. git commit

commit을 진행하고 commit message를 입력한다.



내가 수정한 여러 개의 file을 모두 add해야하며 commit할 때 마다 commit message를 적는 화면에서 commit message를 적어줘야합니다.

그래서 git은 사용하는 명령어들을 좀 더 편리하게 사용할 수 있도록 해주는 옵션들을 가지고 있습니다.

 

 

 

 


 

 

 

 

git commit --help

git bash에 위 명령어를 입력해봅시다.

그러면 아래와 같은 여러 내용이 나올 것입니다.

NAME
git-commit - Record changes to the repository

SYNOPSIS
git commit [-a | --interactive | --patch] [-s] [-v] [-u] [--amend]
[--dry-run] [(-c | -C | --fixup | --squash) ]
[-F | -m ] [--reset-author] [--allow-empty]
[--allow-empty-message] [--no-verify] [-e] [--author=]
[--date=] [--cleanup=] [--[no-]status]
[-i | -o] [--pathspec-from-file= [--pathspec-file-nul]]
[-S[]] [--] […​]
DESCRIPTION
Create a new commit containing the current contents of the index and the given log message describing the changes. The new commit is a direct child of HEAD, usually the tip of the current branch, and the branch is updated to point to it (unless no branch is associated with the working tree, in which case HEAD is "detached" as described in git-checkout(1)).
The content to be committed can be specified in several ways:

by using git-add(1) to incrementally "add" changes to the index before using the commit command (Note: even modified files must be "added");

by using git-rm(1) to remove files from the working tree and the index, again before using the commit command;

by listing files as arguments to the commit command (without --interactive or --patch switch), in which case the commit will ignore changes staged in the index, and instead record the current content of the listed files (which must already be known to Git);

by using the -a switch with the commit command to automatically "add" changes from all known files (i.e. all files that are already listed in the index) and to automatically "rm" files in the index that have been removed from the working tree, and then perform the actual commit;

by using the --interactive or --patch switches with the commit command to decide one by one which files or hunks should be part of the commit in addition to contents in the index, before finalizing the operation. See the “Interactive Mode” section of git-add(1) to learn how to operate these modes.

The --dry-run option can be used to obtain a summary of what is included by any of the above for the next commit by giving the same set of parameters (options and paths).

If you make a commit and then find a mistake immediately after that, you can recover from it with git reset.

OPTIONS
-a
--all
Tell the command to automatically stage files that have been modified and deleted, but new files you have not told Git about are not affected.

중략...

-m <msg>
--message=
Use the given as the commit message. If multiple -m options are given, their values are concatenated as separate paragraphs.

The -m option is mutually exclusive with -c, -C, and -F.

중략...

strip
Strip leading and trailing empty lines, trailing whitespace, commentary and collapse consecutive empty lines.

whitespace
Same as strip except #commentary is not removed.

verbatim
Do not change the message at all.

scissors
Same as whitespace except that everything from (and including) the line found below is truncated, if the message is to be edited. "#" can be customized with core.
commentChar.

# ------------------------ >8 ------------------------
default
Same as strip if the message is to be edited. Otherwise whitespace.

The default can be changed by the commit.cleanup configuration variable (see git-config(1)).

-e
--edit
The message taken from file with -F, command line with -m, and from commit object with -C are usually used as the commit log message unmodified. This option lets you further edit the message taken from these sources.

--no-edit
Use the selected commit message without launching an editor. For example, git commit --amend --no-edit amends a commit without changing its commit message.

--amend
Replace the tip of the current branch by creating a new commit. The recorded tree is prepared as usual (including the effect of the -i and -o options and explicit pathspec), and the message from the original commit is used as the starting point, instead of an empty message, when no other message is specified from the command line via options such as -m, -F, -c, etc. The new commit has the same parents and author as the current one (the --reset-author option can countermand this).

...중략


이렇게 help 명령어를 이용하면 특정 명령어에 대한 설명을 볼 수 있습니다.

help에 대한 결과로는 크게 다음과 같은 내용이 있습니다.

SYNOPSIS

이것은 해당 명령어의 기본적인 형식을 나타내줍니다.
여기선 commit에 대한 help 내용을 봤으니 git commit에 대한 내용과 commmit 뒤에 어떤 옵션을 주면 commit의 방식을 다르게 할 수 있음을 의미합니다.

DESCRIPTION

help로 알아본 명령어가 무엇있지에 대한 설명이 있습니다.
이 예시에선 git commit이라는 명령어의 설명이 있겠네요.

OPTIONS

명령어와 함께 사용할 수 있는 옵션들에 대한 설명이 있습니다.

git commit에 대한 옵션 중 -a라는 옵션이 있습니다.
이는 commit 전에 진행해야하는 add명령어를 사용하지 않고 현재 수정 또는 삭제된 파일들을 모두 자동으로 add합니다.

또한 -m이라는 옵션도 존재합니다. 이 명령어는 다음과 같이 사용할 수 있습니다.

git commit -m 'commit message'


위처럼 -m 이라는 옵션 옆에 commit message를 적어서 별도로 commit message를 적는 화면으로 이동하지 않고도 commit message를 적을 수 있게 해주는 옵션입니다.

 

 

 

 


 

 

 

 

-a, -m 옵션 사용해보기

1. vim f1.txt

위 명령어를 이용하여 f1.txt 파일의 내용을 수정해봅시다.

2. git commit -a

이전과는 다르게 commit에 -a라는 옵션을 주어서 별도의 add없이 수정된 f1.txt파일을 자동으로 stage에 올리고 commit합니다.
commit mmessage를 적고 commit을 완료합니다.

위처럼 -a 옵션을 주어 add 명령어 없이 commit을 진행할 수 있습니다.
이제 -a 옵션과 -m 옵션을 같이 사용해봅시다.

1. vim f1.txt

위 명령어를 이용하여 f1.txt 파일의 내용을 수정합니다.

2. git commit -am 'commit_1'

a옵션으로 수정된 모든 파일을 자동으로 add시키며 m옵션으로 옆에 명시된 commit_1이라는 내용을 commit message로 사용하여 commit을 진행합니다.
이 경우엔 commit message를 입력하는 창이 따로 뜨지 않고 바로 commit이 진행됩니다.

git log를 이용하여 commit history를 보면 commit이 잘 된걸 볼 수 있습니다.

 

만약에 여러 파일이 수정된 것이 아니라 추가되었다면 어떻게할까요?
물론 git add로 추가된 파일을 일일이 add해도 되지만 다음과 같은 편리한 명령어가 존재합니다.

git add .

위처럼 마침표를 이용하여 현재 add되지 않은 모든 파일들을 한 번에 add합니다.

위 명령어가 필요한 이유는 git commit -a에서 -a 옵션은 한 번도 add된 적이 없는 파일은 자동으로 add시켜주지 않기 때문입니다.

 

참고로

git commit -m commit_message 의 형태로 명령어를 입력하면 add되어있는 수정사항들을 commit하는데 이 때 commit message를 입력하는 창 없이 바로 명시한 commit_message로 입력된 채로 commit이 진행됩니다..

 

 

 

 

728x90
반응형

'Github' 카테고리의 다른 글

9. GIT HUB 원격 저장소 만들기  (0) 2021.01.15
8. GIT HUB 알아보기  (0) 2021.01.15
6. 버전 되돌리기 맛보기(reset, revert)  (0) 2021.01.15
5. 버전 관리  (0) 2021.01.15
4. 선택적 commit  (0) 2021.01.15
Comments