Git  . 12     
 


   Git :  ,      .     12       .      ,    ,  ,            .     ,  ,     .   Git  ;     GitHub  .   ,        .





 

Git  . 12     





  


  Git     : add, commit, push.   ,  .       ,         .         ,      .

    .     ,     .    ,           .        .     Git   .

  ,            .     .    CI,  Git-,  rebase     .         .

   ,       .     .      :   ,       .   ,     .    ,   status.




 ,   


   ,      .      .           .  add       .        .

HEAD         .  main    :     .      ,         .   Git        ,      .

git diff        . git diff --cached    HEAD.    diff   ,    .  :  cached diff  ,     .       .

       diff.    git status.  status    :    ,     . , M    M   .     ;  status   .




   


 Git    git-scm.com/install    git --version.     Git 2.28  .       macOS  Apple Git 2.39.5.     Bash   ;  Windows    Git Bash,     cmd  PowerShell.   Windows  Linux   .

   mkdir, printf, cat, cp, test  mktemp.  >       ,  >>   .         .            ,  Git  .

       ,     .  GIT_LAB       .     student@example.invalid   .         --local;    .

       .  mkdir ,    , :      .         .         ;      .

      .       .       6  11:      Git,       .    reset --hard, clean -fd,  ,     .




     


      .     .       ,    ,     ;    .        :      Enter.         .     $    .  Git     ,          ,      .

      :    ,   .       .    HEAD,      .   status --short            ;      .

    ;           .        .          .    ,          ,       .




 


       .   .       :    .       .

GIT_LAB=$(mktemp -d "${TMPDIR:-/tmp}/git-lab.XXXXXX")

export GIT_LAB

mkdir "$GIT_LAB/no-hooks"

printf '%s\n' "$GIT_LAB"

   ,  GIT_LAB       .    :   .      ,        .




 1.   ,     


:     ,     .    commit?      .      ,  ,       .

    .     ,          .    hooks        .         .

cd "$GIT_LAB"

mkdir lab-01

cd lab-01

git init -b main

git config --local user.name " "

git config --local user.email "student@example.invalid"

git config --local commit.gpgsign false

git config --local tag.gpgsign false

git config --local core.autocrlf false

git config --local core.hooksPath "$GIT_LAB/no-hooks"

printf 'topic: Git\nstatus: draft\n' > plan.txt

git add plan.txt

printf 'topic: Git\nstatus: reviewed\n' > plan.txt

git diff --cached

git diff

git commit -m "Save draft plan"

git show HEAD:plan.txt

cat plan.txt

git status --short

    HEAD  status: draft,      status: reviewed.  status   plan.txt   .         .

cd "$GIT_LAB/lab-01"

git add plan.txt

git diff --cached

git commit -m "Review plan"

git status --short

git log --oneline


 

 HEAD     status: reviewed.    ; status --short   .

 add   draft.    reviewed    . Commit      :       .        add.

       cached diff,        diff  .   .          .

    status  ,     ,         add.     git add .:  ,    .


 

   add     ,       ?


  

    :    ,    add. Git      .




 2.      


:      ,    .   ,     .           .

  ,    .       .   restore   --staged:   ,    .

cd "$GIT_LAB"

mkdir lab-02

cd lab-02

git init -b main

git config --local user.name " "

git config --local user.email "student@example.invalid"

git config --local commit.gpgsign false

git config --local tag.gpgsign false

git config --local core.autocrlf false

git config --local core.hooksPath "$GIT_LAB/no-hooks"

printf 'A: draft\n' > a.txt

printf 'B: draft\n' > b.txt

git add a.txt b.txt

git commit -m "Initial entries"

printf 'A: ready\n' > a.txt

printf 'B: in progress\n' > b.txt

git add a.txt b.txt

git diff --cached --name-only

git restore --staged -- b.txt




  .


   .

   ,     (https://www.litres.ru/book/raznoe/git-na-praktike-12-laboratornykh-rabot-v-lokal-nom-repozitorii-74416862/)  .

      Visa, MasterCard, Maestro,    ,   ,     ,  PayPal, WebMoney, ., QIWI ,       .


