하나의 명령으로 Git 추가 및 커밋


392

내가 할 수있는 방법이 있습니까

git add -A
git commit -m "commit message"

하나의 명령으로?

나는 그 두 가지 명령을 많이하는 것처럼 보이고 Git과 같은 옵션이 있다면 git commit -Am "commit message"인생을 훨씬 편리하게 만들 수 있습니다.

git commit-a수정을하지만, 꽤하고 같은하지 않습니다 git add -A커밋하기 전에. git add -A새로 작성된 파일을 추가하지만 git commit -am그렇지 않습니다. 무엇을합니까?



1
시간 절약 및 커밋 모든 변경 사항이 더 좋으므로 git commit -am"yes the code in committed"
Rizo

git add .모두를 추가하는 더 빠른 옵션입니다
Ryan

답변:


419

git aliases를 사용할 수 있습니다.

git config --global alias.add-commit '!git add -A && git commit'

와 함께 사용

git add-commit -m 'My commit message'

편집 : 틱 ( ')으로 되돌아갔습니다 . 그렇지 않으면 Linux에서 쉘 확장에 실패합니다. Windows 에서는 대신 큰 따옴표 ( ") 를 사용해야 합니다 ( 주석에서 지적했지만 확인하지 않았습니다).


24
git config --global --unset alias.<your_alias>별명을 설정 해제하는 데 사용하십시오 .
TMOTTM

11
@MrFusion 내부 git 명령의 바로 가기 대신 명령을 외부 쉘 명령으로 만듭니다. 즉, 전체 행을 별도의 프로세스로 실행합니다.
Martin C.

8
매번 git config --global alias.add-commit '!git add -A && git commit -m'입력 할 필요가 없도록 선호합니다 -m.
백열 자

21
매번 'add-commit'과 '-m'을 입력하기에는 너무 게으르다. 따라서, 내가 입력 : git config --global alias.ac '!git add -A && git commit -m' 난 그냥 입력 시간이되면 모든 : git ac 'comment' :)
인 Navid Vafaei

5
git config --global alias.add-commit "!git add -A && git commit"(즉, 작은 따옴표 대신 큰 따옴표)는 Windows에서 작동합니다.
Saheed

269
git commit -am "message"

git에게 삭제 한 파일을 삭제하도록하는 쉬운 방법이지만 일반적으로 이러한 포괄적 인 워크 플로우를 권장하지 않습니다. Git 커밋은 모범 사례로 상당히 원자 적이어야하며 몇 개의 파일에만 영향을 미칩니다.

git add .
git commit -m "message"

새 파일이나 수정 된 모든 파일을 쉽게 추가 할 수 있습니다. 또한 포괄 자격이 적용됩니다. 위의 명령은 git rm명령 없이 삭제 된 파일을 삭제하지 않습니다 .

git add app
git commit -m "message"

단일 디렉토리 (이 경우에는 app디렉토리) 에서 모든 파일을 색인에 추가하는 쉬운 방법 입니다.


41
또는 그냥 git commit -am "message"-git이 아직 선택하지 않은 새 파일이 없는지 확인하십시오. 그렇지 않으면 git add . &&한 줄에서 수행하려면 그 앞에 사용해야 합니다 ....
courtsimas

2
죄송하지만, 원래의 질문에 정확히 이것에 대해이었다 - 피 git add .경우 파일에 첨가
고른

50

한 줄로 유지하려면 다음을 사용하십시오.

git add . && git commit -am "comment"

이 줄은 변경 및 추가 된 모든 파일을 리포지토리에 추가하고 커밋합니다.


12
이것은 Linux 쉘에만 해당됩니다 (bash 및 기타).
R. Martinho Fernandes

6
git commit -am "comment" 완벽 해
Abhishek Bedi

2
git add . 다음 을 사용한 경우 : -a 옵션을 사용할 필요가 없습니다.git commit -m "comment"
Duc Chi

18

명령을 결합하십시오.

git add -A && git commit -m "comment" 

18

Linux bash에 대한 Ales의 답변과 courtsimas의 의견 만 조정하십시오. .

한 줄로 유지하려면 다음을 사용하십시오.

git commit -am "comment"

이 줄은 변경된 모든 것을 추가하고 커밋합니다. 것을 저장소에 합니다.

git이 아직 선택 하지 않은 새 파일 이 없는지 확인하십시오 . 그렇지 않으면 다음을 사용해야합니다.

git add . ; git commit -am "message"


방법은 git commit -am "comment"있지만 1 파일 만? file.txt 라고합시다 .
Santosh Kumar

git commit -am "comment"변경된 모든 파일을 추가하고 커밋하기위한 바로 가기입니다. 하나의 파일 만 추가하고 커밋하려면 다음을 실행해야합니다.git add file.txt ; git commit -m "comment"
danilo

두 번째 경우에는 m과 함께 -a를 추가 할 필요가 없습니다. git add이어야합니다. ; 힘내 커밋 -m "메시지"
Manish Bansal

12

이후 버전의 git에서는 다음과 같이 추가하고 커밋 할 수 있습니다

git commit -a -m "commit message"

또한 별명 :

[alias]
    ac = commit -a -m

그런 다음 다음과 같이 사용할 수 있습니다.

git ac "commit message"

6
이 명령은 새 파일을 커밋하지 않고 업데이트 된 파일 만 커밋합니다.
ruvim

11

내 Windows 컴퓨터 .bashrc에서 전체 프로세스를보다 간단하게 하기 위해이 별칭을 설정했습니다 .

  • 생성 / 당신의 위치 .bashrc- 참조 SO 스레드
  • 파일에 다음 줄을 추가하십시오

    alias gacp='echo "enter commit message : " && read MSG && git add . && git commit -m "$MSG" && git push'
    

    git add commit 및 push을 수행합니다. 푸시 명령으로 해당 부분을 제거하지 않으려면 어떤 방식 으로든 조정하십시오.

  • .bashrc쉘 재 장전 / 닫기 및 다시 열기

  • 이제 gacp명령으로 전체 프로세스를 수행 할 수 있습니다 .

참고로 스크립트에는 그 git push안에 있습니다. 복사하여 붙여 넣지 마십시오.
야르

11

꽤 사용할 수 있습니다 :

git commit -am "commit all the things"

1
이 명령은 필요한 결과를 얻는 가장 짧고 아마도 가장 쉬운 방법입니다. 자식 버전 2.6.3.windows.1에서 테스트하십시오.
Ithar

5
이렇게하면 새로 추가 된 파일은 커밋되지 않으며 "업데이트 된"파일 만 커밋됩니다.
user13107

1
올바른 추적되지 않은 파일 추적을 시작하지 않습니다
Blair Anderson

@BlairAnderson-add 및 commit을 사용하여 추적되지 않은 파일을 추가하는 명령이 있습니까?
MasterJoe2

6

입력하면 :

git config --global alias.a '!git add -A && git commit -m'

한 번만 입력하면됩니다

git a

매번 :

git a 'your comment'

4
이것은 가장 쉬운 대답이며 매우 쉬우 며 다른 제안과 달리 UNTRACKED 파일을 포함합니다.
JesseBoyd

6

그냥 사용하십시오 :

git commit -m "message" .     

"."에 주목하십시오. 마지막에 ... 또한 파일 / 디렉토리의 경로가 될 수 있습니다


새로 만든 파일이나 변경된 기존 파일에만 적용됩니까?
MasterJoe2

5

나는 껍질을한다

#!/bin/sh

clear

git add -A 
git commit -a -m "'$*'"

예를 들어 git.sh를 저장하고 나중에 호출하십시오.

sh git.sh your commit message

1
다른 OS로 이식 할 수 없으며 git이 직접 할 수 있으므로 요점은 무엇입니까?
naught101

2
@ naught101 git이 스스로 할 수 있다는 것은 명백합니다. 요점은이 쉘이 리눅스에서 git을 사용하는 사람들을 위해 프로세스를 간소화하고 sh git.sh를 커밋 메시지를 실행하는 것이 훨씬 간단하고 이식 가능하지 않게 만드는 것입니다 제대로 작동한다는 의미는 아닙니다.
ademar111190

5

로그인 쉘에서 제공되는 내 .bash_profile또는 .profile/ .zprofile또는 무엇이든 이 기능을 가지고 있습니다 .

function gac () {
  # Usage: gac [files] [message]
  # gac (git add commit) stages files specified by the first argument
  # and commits the changes with a message specified by the second argument.
  # Using quotes one can add multiple files at once: gac "file1 file2" "Message".
  git add $1 && git commit -m "$2"
}

3

당신은 ca를 사용 -a

git commit -h

...
Commit contents options
    -a, -all    commit all changed files
...

git commit -a # It will add all files and also will open your default text editor.

2

나는 이것이 누군가를 돕기를 희망하며 자유롭게 편집하거나 개선하기를 바랍니다. 가장 빠른 방법이 무엇인지 잘 모르겠지만 Git에 "ohmyzsh"를 사용하여 코드 커밋 프로세스를 단순화합니다. 합니다.

https://ohmyz.sh/

  • git add . ~에 단축되다 ga .
  • git commit -m "message" ~에 단축되다 gc -m "message"
  • git push ~에 단축되다 gp

여기에 이미지 설명을 입력하십시오


1

나는 다음을 사용합니다 (둘 다 진행 중이므로 이것을 업데이트하는 것을 기억하려고 노력할 것입니다).

# Add All and Commit
  aac = !echo "Enter commit message:" && read MSG && echo "" && echo "Status before chagnes:" && echo "======================" && git status && echo "" && echo "Adding all..." && echo "=============" && git add . && echo "" && echo "Committing..." && echo "=============" && git commit -m \"$MSG\" && echo "" && echo "New status:" && echo "===========" && git status

# Add All and Commit with bumpted Version number
  aacv = !echo "Status before chagnes:" && echo "======================" && git status && echo "" && echo "Adding all..." && echo "=============" && git add . && echo "" && echo "Committing..." && echo "=============" && git commit -m \"Bumped to version $(head -n 1 VERSION)\" && echo "" && echo "New status:" && echo "===========" && git status

echo "Enter commit message:" && read MSGSojan V 호세에서 영감을 일부

나는 if else거기에 진술 을하고 싶습니다 .aacv가 완료되면 배포 할 것인지 묻고 'y'를 입력하면 나를 위해 할 수는 있지만 .zshrc파일에 넣어야한다고 생각 합니다.


1

모두 추가 및 커밋에 다음 별칭을 사용합니다 .

git config --global alias.ac '!git add -A && git commit -a'

그런 다음 다음을 입력하여

git ac

커밋 메시지에 대한 추가 편집 도구를 얻을 수있는 vim 창이 나타납니다.


표절 때문에 고소해야합니다 :)
Navid Vafaei

Navid의 현저하게 오래된 답변과 비교할 때 답변이 제공하는 다른 추가 통찰력을 설명하십시오.
Yunnosch

@Yunnosch 나는 "너무 게으른"게시물이기 때문에 게시하기 전에 Navid의 답변을 보지 못했다고 생각합니다. : P 전체 답변으로 게시합니다. 사실, 그것은 동일합니다. 사실 저는 오래 전에부터이 별칭을 동료로부터 빌 렸습니다. 그래서 우리는 이것을 표절 체인이라고 부를 수있을 것 같습니다. 귀찮게해서 죄송합니다.
거스

1

누군가가 하나의 파일에 대해 "추가 및 커밋"을 원할 경우, 다음과 같이 스크립트를 작성했습니다.

#!/bin/bash

function usage {
    echo "Usage: $(basename $0) <filename> <commit_message>"    
}

function die {
    declare MSG="$@"
    echo -e "$0: Error: $MSG">&2
    exit 1
}

(( "$#" == 2 )) || die "Wrong arguments.\n\n$(usage)"

FILE=$1
COMMIT_MESSAGE=$2

[ -f $FILE ] || die "File $FILE does not exist"

echo -n adding $FILE to git...
git add $FILE || die "git add $FILE has failed."
echo done

echo "commiting $file to git..."
git commit -m "$COMMIT_MESSAGE" || die "git commit has failed."

exit 0

이름을 "gitfile.sh"로 지정하여 $ PATH에 추가했습니다. 그런 다음 하나의 명령으로 단일 파일에 대해 git add 및 commit을 실행할 수 있습니다.

gitfile.sh /path/to/file "MY COMMIT MESSAGE"

0

이 자식 별칭을 사용합니다.

git config --global alias.cam '!git commit -a -m '

그래서 전화 대신

git add -A && git commit -m "this is a great commit"

나는 단지 :

git cam "this is a great commit"


0

당신이 사용할 수있는 자식이 "[코멘트]"-am 커밋 // 최적의 솔루션 또는 자식 추가. && git commit -m "[코멘트]"


0

어떤 별칭이 있는지 먼저 확인하십시오 ...

git config --get-regexp alias

그것이 없다면 당신이 직접 만들 수 있습니다 (참조 : https://git-scm.com/book/en/v2/Git-Basics-Git-Aliases )

// 자식 추가

git config --global alias.a '!git add -A'

// 자식 커밋

git config --global alias.c '!git commit'

// 자식 커밋 -m

git config --global alias.cm '!git commit -m'

// 자식 추가 커밋

git config --global alias.ac '!git add -A && git commit'

// git add commit -m

git config --global alias.acm '!git add -A && git commit -m'

예를 들어, 마지막 것을 사용한다면 ...

git acm 'My commit'

0
  1. bash에서 별명을 작성하십시오. alias gac="git add -A && git commit -m"

    (바로 가기 'gac'를 선택했지만 반드시 그럴 필요는 없습니다)

  2. 사용해: gac 'your commit message here'


0

Subversion과 같은 것들에 사용되는 군중의 은빛 등받이를 위해 ... 단일 단계 일반적으로 프로젝트 루트에 다음과 같은 것을 추가합니다 (예 : git-commit.bat와 같은 박쥐 파일). 그런 다음 추가, 커밋 및 푸시를 원할 때git-commit "Added some new stuff" 하면 모두 원격 저장소로 이동합니다.

또한이 방법으로 프로젝트의 모든 사람이 로컬에서 아무것도 변경하지 않고도 동일한 것을 사용할 수 있습니다.

나는 보통 git config credential.helper store한 번만 실행 되므로 이것이 실행될 때 uid / pwd를 줄 필요가 없습니다.

::
:: add, commit, and push to git
::

@echo off
echo.
echo.
echo 
echo Doing commit...
git add -A && git commit -m %1
echo.
echo.
echo Doing push...
git push
echo.
echo.
echo Done.
echo.

0

이것은 항상 나를 위해 작동합니다 다음 명령을 실행하십시오 :

1.git add .
2.git commit -m "no bugs please"
3.git push origin *

여기서 *는 푸시하려는 브랜치를 기반으로하며 커밋 메시지는 항상 컨텍스트에 맞게 변경할 수 있습니다.


-1
  1. 입력 git add . && git commit -am하고 입력
  2. 입력 history하고 입력
  3. 위 명령의 번호를 기억하십시오. 543
  4. 이제부터는 모든 커밋 유형에 대해 !543 "your comment here"느낌표 + 숫자와 공백 및 주석이 있습니다.

4
나는 역사가 만료되고 543 번째 명령이 다른 것이되면 끔찍한 방식으로 물건을 깰 수있는 정말 이상한 해결책이기 때문에 다운 투표했습니다.
bfontaine


-4

한 줄로 유지하려면 다음을 사용하십시오.

gacm "your comment"

2
이것이나 링크 또는 무언가에 대한 배경 지식을 줄 수 있습니까?
Gershom

7
이 포스터는 별칭과 함께 작동하지만 그것을 알지 못한다고 생각합니다. 위의 작업을 수행하려면 셸 별칭과 같은 쉘 별칭을 추가하고 싶습니다 alias gacm="git add .; git commit -m"(바람직하게 생각합니다) git config --global alias.gacm '!git add .;git commit -m'.
Mere Development
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.