KKitForma.

Language

EnglishEnglishTürkçeTurkishTool unavailable · open catalogDeutschGermanTool unavailable · open catalogEspañolSpanishTool unavailable · open catalogFrançaisFrenchTool unavailable · open catalogPortuguêsPortugueseTool unavailable · open catalogItalianoItalianTool unavailable · open catalogNederlandsDutchTool unavailable · open catalogPolskiPolishTool unavailable · open catalogРусскийRussianTool unavailable · open catalogУкраїнськаUkrainianTool unavailable · open catalogSvenskaSwedishTool unavailable · open catalogNorskNorwegianTool unavailable · open catalogDanskDanishTool unavailable · open catalogSuomiFinnishTool unavailable · open catalogČeštinaCzechTool unavailable · open catalogRomânăRomanianTool unavailable · open catalogΕλληνικάGreekTool unavailable · open catalogالعربيةArabicTool unavailable · open catalogעבריתHebrewTool unavailable · open catalogفارسیPersianTool unavailable · open catalogاردوUrduTool unavailable · open catalogहिन्दीHindiTool unavailable · open catalogবাংলাBengaliTool unavailable · open catalogதமிழ்TamilTool unavailable · open catalogతెలుగుTeluguTool unavailable · open catalogमराठीMarathiTool unavailable · open catalogગુજરાતીGujaratiTool unavailable · open catalog简体中文Chinese SimplifiedTool unavailable · open catalog繁體中文Chinese TraditionalTool unavailable · open catalog日本語JapaneseTool unavailable · open catalog한국어KoreanTool unavailable · open catalogTiếng ViệtVietnameseTool unavailable · open catalogไทยThaiTool unavailable · open catalogBahasa IndonesiaIndonesianTool unavailable · open catalogBahasa MelayuMalayTool unavailable · open catalogFilipinoFilipinoTool unavailable · open catalogKiswahiliSwahiliTool unavailable · open catalogAfrikaansAfrikaansTool unavailable · open catalogMagyarHungarianTool unavailable · open catalogБългарскиBulgarianTool unavailable · open catalogHrvatskiCroatianTool unavailable · open catalogSrpskiSerbianTool unavailable · open catalogSlovenčinaSlovakTool unavailable · open catalogSlovenščinaSlovenianTool unavailable · open catalogLietuviųLithuanianTool unavailable · open catalogLatviešuLatvianTool unavailable · open catalogEestiEstonianTool unavailable · open catalogCatalàCatalanTool unavailable · open catalogEuskaraBasqueTool unavailable · open catalog
← All topics and search

Git, Docker & testing

Version control, containers, repeatable tests and deployment diagnostics.

100 troubleshooting guides · Page 1 / 5

  1. How do I unstage a file while keeping my edits?

    Staging selects content for the next commit; it is separate from the working copy. Removing a staged change need not discard the edited file.

  2. Should I use reset or revert to undo a commit already shared with teammates?

    Revert creates a new commit that reverses an earlier change, preserving the published history. Reset moves a branch reference and can require rewriting others’ history.

  3. How can I recover a commit after moving the branch pointer accidentally?

    A commit may still exist even when the branch no longer points to it. The local reflog records recent reference movements.

  4. Why did Git say my commits are not on a branch?

    Checking out a commit or tag can leave HEAD detached. New commits still exist, but no ordinary branch name moves with them unless you create one.

  5. Does git stash include untracked and ignored files by default?

    A normal stash does not include every file in the directory. Untracked and ignored files require deliberate options and can include valuable local data.

  6. How do I resolve a merge conflict without accidentally deleting the other side’s intent?

    Conflict markers show incompatible edits, not which side is logically correct. Choosing ours or theirs for the entire file can discard unrelated needed work.

  7. Why do ours and theirs seem reversed while resolving a rebase?

    During rebase, Git replays commits onto a new base. The sides refer to that replay context, which differs from the intuition of a normal two-branch merge.

  8. What protection does force-with-lease provide when pushing rewritten history?

    A lease checks that the remote reference still matches the expected state before replacing it. It is safer than an unconditional force but not a substitute for team coordination.

  9. Why does adding a file to .gitignore not stop Git tracking it?

    Ignore rules primarily affect untracked paths. A file already in the index remains tracked after a matching rule is added.

  10. Is deleting a secret in a new commit enough after it was pushed?

    No. Earlier commits, clones and logs can still contain the secret. Removing the current file does not revoke a credential.

  11. Why does Git show every line changed after opening a file on Windows?

    Line-ending conversion can change CRLF and LF across the whole file without changing visible text. Inconsistent editor and Git settings make review noisy.

  12. Why does a filename case change work locally but fail on Linux CI?

    Case-insensitive filesystems can hide a mismatch between import spelling and the actual tracked filename. Linux often distinguishes those names.

  13. Why does a shell script run locally but report permission denied in CI?

    Git tracks an executable mode bit for regular files. A local filesystem or invocation style may hide that the committed script lacks it.

  14. How can I work on a second branch without disturbing my current checkout?

    A linked worktree gives another working directory associated with the same repository objects. It avoids stashing unrelated edits merely to inspect another branch.

  15. How do I copy one fix to another branch without merging everything?

    Cherry-pick applies the change introduced by a selected commit onto the current branch. It creates a new commit identity and may depend on earlier changes.

  16. How can git bisect find the commit that introduced a regression?

    Bisect narrows the range between a known good and known bad revision by testing intermediate commits. Its result is only as reliable as the test criterion.

  17. Why is CI missing a tag or merge base that exists in the repository?

    A shallow or narrowly fetched checkout contains only selected history and references. Commands that need ancestors or tags may not have enough information locally.

  18. Why is a cloned Git submodule directory empty or at an unexpected revision?

    The parent repository records a submodule commit, not its complete working files. Initialization and checkout are separate steps.

  19. Why does a cloned image or video contain a small text pointer instead of media?

    Git LFS stores pointer files in ordinary Git history while large content is fetched through the LFS mechanism. Missing LFS setup or access can leave the pointer visible.

  20. Why does a commit show the wrong author even though I am logged into GitHub?

    Commit author metadata comes from Git configuration or explicit commit parameters, not automatically from the website session. Authentication and authorship are separate.

  21. How do I check which repository a push will affect?

    Remote names are local aliases, and a branch’s upstream can differ from the remote you expect. Fetch and push URLs can also be configured separately.

  22. Why does git pull ask me to choose how to reconcile divergent branches?

    Local and remote branches both have commits absent from the other. Pull needs a policy for combining them rather than silently guessing your history preference.

  23. What do two-dot and three-dot git diff comparisons mean?

    The comparison form changes the baseline. A direct two-endpoint diff compares snapshots, while the three-dot form compares the merge base to the second endpoint.

  24. Why does Git sometimes show a rename as a delete plus an add?

    Git generally detects renames by comparing content; it does not store a permanent rename event independent of the snapshots. Large simultaneous edits can reduce similarity.

Ask your own question · Sign in to post questions and answers.