Liigu sisu juurde

CLI viide

Pitmaster sisaldab git-käskude alamhulka jäljendavat CLI. See töötab praeguse töökataloogi hoidlas.

Shell
./vendor/bin/pitmaster <command> [args...]

Composer paigalduse korral on skript asukohas ./vendor/bin/pitmaster; alates versioonist 0.2.11 leiab see sealt projekti autolaaduri. Pitmaster hoidla väljavõttes käivita ./bin/pitmaster pärast composer install. Alltoodud näidetes kasutatakse mõlema tee jaoks pitmaster. Argumentideta käivitamisel kuvatakse käskude loend.

Versioone lahendatakse nagu Repository::resolve() puhul: HEAD, haru- ja sildinimed, täielikud viitenimed, täielikud räsid ning avaldised ~N / ^N. Lühendatud räsi ei aktsepteerita. Kloonimine, toomine ja lükkamine on saadaval ainult PHP API kaudu.

Käsud

log

Kuva kinnistuste ajalugu, uusim eespool.

Shell
# Default: last 10 commits
pitmaster log

# Limit the number of commits
pitmaster log 25
pitmaster log -n 3
pitmaster log -n3
pitmaster log --max-count 3
pitmaster log --max-count=3
pitmaster log -3

# Commits that touch one file
pitmaster log src/Repository.php
pitmaster log -- src/Repository.php

# Commits reachable from all refs, and one line per commit
pitmaster log --all
pitmaster log --oneline

git-i piirangu kirjapildid (-n N, -nN, --max-count N, --max-count=N, -N) lisati versioonis 0.2.11. Paljas arv on Pitmaster enda lühikirjapilt piirangu jaoks. Esimene muu argument on teefilter; kõike pärast -- käsitletakse teena. Mis tahes muu argument, mis algab --ga, kuvab fatal: unrecognized argument: <arg> ja väljub koodiga 128.

Väljund sisaldab commit <hash> (kollane), liitmiskinnituste rida Merge:, töötlemata identiteediga kirjet Author: (nimi, e-post, ajatempel ja ajavöönd) ning taandega kinnituse sõnumit. --oneline kuvab abc1234 Subject. Teefilter sobib täpselt ühe failiteega ning vaatab läbi ainult piirangule vastava viie uusima kinnistuse (#7).

show

Kuva kinnistuse üksikasjad ja erinevus esimese eellasega.

Shell
# Show HEAD
pitmaster show

# Show a specific commit
pitmaster show HEAD~3
pitmaster show v1.0.0
pitmaster show 3f2c1e0b9d6a4f8e7c5b2a1d0e9f8c7b6a5d4e3f

Kuvab kinnistuse metaandmed (koos reaga Date:), millele järgneb ühtne erinevuste kuvamine. Annoteeritud sildi korral kuvatakse esmalt sildi päis ja sõnum. Värve kasutatakse ainult siis, kui stdout on terminal. Liitmiskinnitusi kuvatakse erinevusteta.

cat-file

Prindi git-objekti töötlemata sisu.

Shell
pitmaster cat-file a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2

Võtab täieliku räsi. Prindib objekti salvestatud sisu: bloobid, kinnistused ja sildid tekstina, puud binaarsel kujul. Erinevalt käsust git cat-file -p ei kuvata puid ilusamalt vormindatuna.

status

Kuva tööpuu olek.

Shell
pitmaster status
pitmaster status --porcelain=v2

Väljund:

Kood
On branch main

Changes to be committed:
	new file:   src/Feature.php

Changes not staged for commit:
	modified:   src/Existing.php

Untracked files:
	notes.txt

Lisatud failid kuvatakse rohelisena, lisamata, ühendamata ja jälgimata failid punasena. Konfliktse liitmise ajal kuvatakse jaotis Unmerged paths:. Eraldiseisev HEAD prindib HEAD detached, puhas puu aga nothing to commit, working tree clean. --porcelain=v2 prindib käsu Repository::statusPorcelainV2() väljundi.

diff

Kuva muudatused indeksi ja tööpuu vahel (lisamata muudatused).

Shell
# Unstaged changes
pitmaster diff

# Staged changes (index vs HEAD)
pitmaster diff --cached
pitmaster diff --staged

# Choose the algorithm
pitmaster diff --patience
pitmaster diff --histogram
pitmaster diff --minimal

Väljund on värviline ühtne erinevuste kuvamine ka siis, kui stdout pole terminal. Muudetud tekstifailide korral vastab see käsu git diff väljundile; uusi, kustutatud, binaarseid, ümbernimetatud ja režiimi muudetud faile vormindatakse teisiti (vt Erinevused). diff --cached ei prindi midagi enne esimest kinnitust (#5).

add

Lisa failid järgmise kinnituse jaoks alasse.

Shell
pitmaster add src/Feature.php
pitmaster add src/Feature.php tests/FeatureTest.php README.md

Iga fail loetakse tööpuust, kirjutatakse bloobiobjektina ja indeksit uuendatakse. Argumendid on failiteed; katalooge ja . ei laiendata.

commit

Loo lisatud failidest kinnistus.

Shell
pitmaster commit -m "Add new feature"

Väljund:

Kood
[main abc1234] Add new feature

-m on nõutav, välja arvatud peatatud liitmise, valikkorje, tagasipööramise või alustamise lõpetamisel, mil kasutatakse ettevalmistatud sõnumit. Autor ja kinnitaja leitakse keskkonnamuutujatest, konstantidest ning .git/config kaudu, nagu kirjeldatud juhendis Alustamine.

branch

Loetle harusid või loo uus haru.

Shell
# List all branches (current marked with *)
pitmaster branch

# Create a new branch from HEAD
pitmaster branch feature/new-thing

# Delete a branch
pitmaster branch -d feature/old
pitmaster branch -D feature/old

Loendi väljund:

Kood
  bugfix/typo
  feature/login
* main

Loomisel prinditakse Created branch <name>, kustutamisel Deleted branch <name>. -d ja -D toimivad ühtemoodi: kumbki ei kontrolli, kas haru on liidetud, ning mõlemad keelduvad aktiivse haru kustutamisest.

tag

Loetle silte või loo uus silt.

Shell
# List all tags
pitmaster tag

# Create a lightweight tag at HEAD
pitmaster tag v1.0.0

# Create an annotated tag at HEAD
pitmaster tag v2.0.0 -m "Release version 2.0.0"

Loomisel prinditakse Created tag <name>.

checkout

Vaheta harusid või lahuta HEAD.

Shell
# Switch to a branch
pitmaster checkout feature/login

# Detach HEAD at a tag or commit
pitmaster checkout v1.0.0
pitmaster checkout HEAD~2

Uuendab HEAD-i, indeksit ja tööpuud nii, et need vastaksid sihtkohale, ning prindib Switched to '<target>'. Keeldub, kui kohalikke muudatusi või jälgimata faile on radadel, mis kahe puu vahel erinevad. Teistes jälgitavates failides olevad kinnitamata muudatused kirjutatakse sihtkoha sisuga üle; git jätaks need alles (#2). Kinnita või pane need esmalt kõrvale.

merge

Liida üks või mitu haru praeguse HEAD-iga või jätka/katkesta pooleliolev konfliktne liitmine.

Shell
# Start a merge
pitmaster merge feature/login

# Merge with a strategy
pitmaster merge -s ours feature/login

# Octopus merge of several branches
pitmaster merge feature/a feature/b

# Continue after resolving conflicts
pitmaster add a.txt
pitmaster merge --continue

# Abort and restore the pre-merge state
pitmaster merge --abort

Eduka toimingu väljund:

Kood
Merge successful.

Konflikti korral väljastatav väljund (stderr, väljumiskood 1):

Kood
CONFLICT in: src/File.php, src/Other.php

-s aktsepteerib valikuid ours, ort ja recursive; ort ja recursive kasutavad mõlemad vaikimisi liitmist. Valikuga -s prindib CLI konfliktide tõttu peatunud liitmise korral Merge successful. ja väljub koodiga 0 (#21), seega kontrolli pärast seda status. merge --continue ilma poolelioleva liitmiseta väljub koodiga 128. Juba liidetud haru liitmisel tekib veel üks liitmiskinnitus (#6) ning jälgitavate failide kinnitamata muudatused kirjutatakse üle nagu käsuga checkout.

cherry-pick

Rakenda kinnitus praeguse HEAD-i peale või jätka/katkesta pooleliolevat konflikti.

Shell
# Start a cherry-pick
pitmaster cherry-pick feature~1

# Continue after resolving conflicts
pitmaster add a.txt
pitmaster cherry-pick --continue

# Abort and restore HEAD
pitmaster cherry-pick --abort

Eduka toimingu korral ei prindita midagi. --continue ja --abort väljuvad koodiga 128, kui valikkorje pole pooleli.

revert

Loo tagasipööramise kinnitus või jätka/katkesta pooleliolevat konflikti.

Shell
# Start a revert
pitmaster revert HEAD~1

# Continue after resolving conflicts
pitmaster add a.txt
pitmaster revert --continue

# Abort and restore HEAD
pitmaster revert --abort

Eduka toimingu korral ei prindita midagi. --continue ja --abort väljuvad koodiga 128, kui tagasipööramine pole pooleli.

rebase

Sea praegune haru uue baasviite peale.

Shell
# Start a rebase
pitmaster rebase main

# Continue after resolving conflicts
pitmaster rebase --continue

# Skip the current commit
pitmaster rebase --skip

# Abort and restore the original branch tip
pitmaster rebase --abort

Eduka toimingu korral ei prindita midagi. --continue, --skip ja --abort prindivad ilma poolelioleva alustamiseta fatal: no rebase in progress ja väljuvad koodiga 128.

bisect

Leia binaarotsinguga kinnistus, mis muutuse sisse tõi.

Shell
# Start with a bad and a good revision; checks out and prints the first candidate
pitmaster bisect start HEAD v1.0.0

# Mark the checked-out candidate (or a given revision)
pitmaster bisect good
pitmaster bisect bad
pitmaster bisect bad HEAD~3

# End the session and return to the starting branch
pitmaster bisect reset

start, good ja bad prindivad järgmise kandidaadi täieliku räsi ja lülituvad sellele. Kui alles jääb üks kahtlusalune, prinditakse sama räsi uuesti: see kinnistus on esimene vigane. Erinevalt git-ist ei prindita kokkuvõtet „is the first bad commit”.

stash

Salvesta ja taasta töökausta muudatused.

Shell
# Save current changes (push)
pitmaster stash
pitmaster stash push
pitmaster stash push "Work in progress on login"
pitmaster stash save "Work in progress on login"

# Apply and remove the top stash entry
pitmaster stash pop

# Apply without removing
pitmaster stash apply

# List stash entries
pitmaster stash list

# Drop the top stash entry
pitmaster stash drop

Sõnum on argument pärast valikut push või save; valikut -m ei toetata ja see salvestataks sõnumina. pop, apply ja drop kasutavad alati valikut stash@{0}. Need prindivad Saved working directory to stash abc1234, Applied and dropped stash, Applied stash ja Dropped stash.

Kõrvale pandud muudatuste loendi väljund:

Kood
stash@{0}: On main: Work in progress on login
stash@{1}: WIP on main: abc1234 Add new feature

Kui kirjeid on mitu, jätavad drop ja pop praegu kirje loendisse (#10), ning apply kirjutab üle kinnitamata muudatused failides, mida kõrvale pandud muudatused ei puuduta (#11).

blame

Kuva faili ridade autorid HEAD-is.

Shell
pitmaster blame src/Repository.php

Väljund:

Kood
a1b2c3d4 (Jane Smith <jane@example.com> ) <?php
a1b2c3d4 (Jane Smith <jane@example.com> )
f5e6d7c8 (Ann Lee <ann@example.com> 1700) declare(strict_types=1);

Igal real kuvatakse kinnituse räsi esimesed 8 märki ja autori identiteedi esimesed 30 märki (Name <email> timestamp timezone), ilma täiteta.

grep

Otsi failisisu praegusest HEAD-i puust.

Shell
pitmaster grep "function merge"
pitmaster grep -i -E "h.llo"

Väljund:

Kood
src/Repository.php:2257:    public function merge(string $branch, string $strategy = 'recursive'): MergeResult
src/Merge/ThreeWayMerge.php:23:    public static function merge(

Valikud peavad eelnema mustrile:

  • -i, --ignore-case: tõstutundetu vasteotsing
  • -E, --extended-regexp, --regex: käsitle mustrit PCRE regulaaravaldisena

Väljund on lihttekst path:line:content ilma värvideta.

reflog

Kuva reflogi kirjed, uusim eespool.

Shell
# HEAD reflog (default: 10 entries)
pitmaster reflog

# Another ref, a custom limit, and a format
pitmaster reflog show refs/heads/main
pitmaster reflog -n 5
pitmaster reflog --format="%h %gs"

Vaikevorming on %gd: %gs (HEAD@{0}: commit: Add feature). Toetatud kohatäited: %gd ja %gD (valija), %gs (sõnum), %H ja %h (uus täielik ja lühike räsi). Piirangus aktsepteeritakse -n N, -nN ja --max-count N; -n 0 prindib kõik kirjed.

pitmaster init loodud hoidlad ei salvesta refloge, kui core.logallrefupdates pole failis .git/config väärtuseks true määratud (#8); seega ei prindi reflog seal enne selle seadmist midagi.

refs

Loetle kõik viited koos nende räsiga.

Shell
pitmaster refs

Väljund:

Kood
abc123def456... refs/heads/main
789012abc345... refs/heads/feature/login
def456789012... refs/tags/v1.0.0

Räsid prinditakse täielikult.

reset

Lähtesta HEAD kindlale kinnistusele.

Shell
# Mixed reset (HEAD + index, default)
pitmaster reset HEAD~1
pitmaster reset --mixed HEAD~1

# Soft reset (HEAD only)
pitmaster reset --soft HEAD~1

# Hard reset (HEAD + index + worktree)
pitmaster reset --hard HEAD~3

Versioon on nõutav. Väljund:

Kood
HEAD is now at abc1234

init

Lähtesta uus hoidla. See on ainus käsk, mis ei vaja olemasolevat hoidlat.

Shell
# Initialize in the current directory
pitmaster init

# Initialize at a specific path
pitmaster init /path/to/new-project

# Create a SHA-256 repository
pitmaster init --object-format=sha256
pitmaster init /path/to/new-project --object-format=sha256

Väljund:

Kood
Initialized empty Pitmaster repository in /path/to/new-project/.git/

--object-format aktsepteerib valikuid sha1 (vaikimisi) ja sha256.

Väljumiskoodid

Kood Tähendus
0 Edu
1 Käsuviga: kasutusviga, tundmatu käsk, ebaõnnestunud toiming (error: <message>) või konfliktide tõttu peatunud liitmine
128 Pole git-hoidla (fatal: <message>), tundmatu argument log või --continue / --abort / --skip ilma poolelioleva toiminguta