591 Stimmen

Git add und commit in einem Befehl

Gibt es eine Möglichkeit, wie ich die

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

in einem einzigen Befehl?

Ich scheine diese beiden Befehle häufig auszuführen, und wenn Git eine Option wie git commit -Am "commit message" Das würde das Leben sehr viel bequemer machen.

git commit hat die -a Modifikator, aber es ist nicht ganz dasselbe wie bei git add -A bevor Sie sich festlegen. git add -A fügt neu erstellte Dateien hinzu, aber git commit -am nicht. Was dann?

5 Stimmen

4 Stimmen

Zeitersparnis und jede Änderung festschreiben ist besser, deshalb verwende ich git commit -am "yes the code in committed"

1 Stimmen

git add . ist eine schnellere Option zum Hinzufügen aller

2voto

H. Almidan Punkte 361
  1. Erstellen Sie einen Alias in der Bash: alias gac="git add -A && git commit -m"

    (Ich habe mich entschieden, die Abkürzung 'gac' zu nennen, aber das müssen Sie nicht)

  2. Verwenden Sie es: gac 'your commit message here'

2voto

Für den Fall, dass jemand eine einzelne Datei "hinzufügen und übertragen" möchte, was bei mir der Fall war, habe ich das folgende Skript erstellt, um genau das zu tun:

#!/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

Ich nannte es "gitfile.sh" und fügte es zu meinem $PATH hinzu. Dann kann ich git add und commit für eine einzelne Datei mit einem einzigen Befehl ausführen:

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

2voto

Druta Ruslan Punkte 6577

Sie können verwenden -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.

0 Stimmen

-a / -all fügt keine neuen Dateien hinzu

1voto

Cruz Jurado Punkte 153

Prüfen Sie zunächst, welche Aliasnamen Sie haben...

git config --get-regexp alias

Wenn sie nicht vorhanden ist, können Sie eine eigene erstellen (Referenz: https://git-scm.com/book/en/v2/Git-Basics-Git-Aliases )

// git add

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

// git commit

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

// git commit -m

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

// git add commit

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'

Wenn Sie zum Beispiel die letzte...

git acm 'My commit'

0 Stimmen

Ich liebe die Auswahl. Sie könnten sogar hinzufügen git config --global alias.acmp '!git add -A && git commit -m "update" && git push'

1voto

John Punkte 2791

Für die Silberrücken in der Menge, die an Dinge wie Subversion gewöhnt sind... um einen "Commit" im alten Sinne des Wortes zu machen (d.h. - oder in Git-Sprache - um hinzuzufügen, zu übertragen und zu pushen) in einem einzigen Schritt, füge ich im Allgemeinen etwas wie das Folgende in den Root meines Projekts ein (als Bat-Datei in Windows z.B. git-commit.bat). Wenn ich dann etwas hinzufügen, übertragen und pushen möchte, gebe ich einfach etwas ein wie git-commit "Added some new stuff" und alles geht an das entfernte Repo.

Außerdem kann auf diese Weise jeder am Projekt Beteiligte dasselbe verwenden, ohne etwas lokal ändern zu müssen.

Ich führe normalerweise auch git config credential.helper store einmal, so dass ich nicht uid/pwd angeben muss, wenn dies ausgeführt wird.

::
:: 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.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X