වැඩ කරන ගසක සහ දර්ශකයක සිදු නොවූ සියලු වෙනස්කම් ආපසු හැරවීමට සහ අලුතින් සාදන ලද ලිපිගොනු සහ ෆෝල්ඩර ඉවත් කිරීමට git විධානයක් තිබේද?
වැඩ කරන ගසක සහ දර්ශකයක සිදු නොවූ සියලු වෙනස්කම් ආපසු හැරවීමට සහ අලුතින් සාදන ලද ලිපිගොනු සහ ෆෝල්ඩර ඉවත් කිරීමට git විධානයක් තිබේද?
Answers:
ඔබට මෙම විධාන දෙක ක්රියාත්මක කළ හැකිය:
# Revert changes to modified files.
git reset --hard
# Remove all untracked files and directories.
# '-f' is force, '-d' is remove directories.
git clean -fd
git clean -i
අන්තර්ක්රියාකාරී මාදිලියක් සඳහා.
git merge --abort
.
වත්මන් වැඩ කරන නාමාවලියෙහි පමණක් වෙනස්කම් ආපසු හැරවීමට ඔබට අවශ්ය නම්, භාවිතා කරන්න
git checkout -- .
ඊට පෙර, ඇත්ත වශයෙන්ම කිසිදු ක්රියාමාර්ගයක් නොගෙන ආපසු හරවන ලද ගොනු ලැයිස්තුගත කළ හැකිය, කුමක් සිදුවේදැයි පරීක්ෂා කිරීමට,
git checkout --
git reset --hard
කුමක්ද?
වැඩ කරන නාමාවලියෙහි වෙනස්කම් බැහැර කිරීමට "git checkout - ..." භාවිතා කරන්න
git checkout -- app/views/posts/index.html.erb
හෝ
git checkout -- *
git තත්වයේ අස්ථායි ගොනු වල සිදු කරන ලද සියලුම වෙනස්කම් ඉවත් කරයි
modified: app/controllers/posts.rb
modified: app/views/posts/index.html.erb
git checkout -- *
වෙනස් කළ ලිපිගොනු පිහිටා ඇති නාමාවලියෙහි මා සිටින්නේ නම් මිස මට වැඩ නොකරයි. මුළු ගබඩාව පුරාම ඇති සියලුම ලිපිගොනු git checkout -- :/
git checkout -- *
, වත්මන් නාමාවලියෙහි ඇති සියලුම ගොනු සහ නාමාවලි සමඟ තාරකාව ෂෙල් මගින් ප්රතිස්ථාපනය වේ. එබැවින් එය උප බහලුම් තුළට යා යුතුය. එය මට වැඩ කරයි. නමුත් මගේ මතය අනුව පිරිසිදු කරන මැහුම් ": /" ඉස්මතු කිරීමට ස්තූතියි.
git checkout -- '**/*.md'
. මට දැන් අවශ්ය දේ සේම.
සුළු නොවන එක් ක්රමයක් නම් මෙම විධාන දෙක ක්රියාත්මක කිරීමයි:
git stash
මෙය ඔබගේ වෙනස්කම් තොගයට ගෙන යන අතර ඔබව නැවත HEAD තත්වයට ගෙන එනු ඇතgit stash drop
මෙය අවසාන විධානය තුළ සාදන ලද නවතම තොගය මකා දමනු ඇත.fatal: git-write-tree: error building trees Cannot save the current index state
git clean -fd
උදව් කළේ නැත, නව ලිපිගොනු ඉතිරිව තිබේ. මා කළේ වැඩ කරන ගස මුළුමනින්ම මකා දැමීමයි
git reset --hard
"බලන්න ? මම කොහොමද GIT මගේ දේශීය කම්කරු බහලුම ඉවත් කරන්නේ එකතු කිරීම සඳහා උපදෙස් සඳහා" -x
පිරිසිදු විකල්පය:
git clean -fdx
සටහන් -x
ධජය මඟින් Git විසින් නොසලකා හරින ලද සියලුම ගොනු ඉවත් කරනු ඇත, එබැවින් ප්රවේශම් වන්න (මා යොමු කරන පිළිතුරේ සාකච්ඡාව බලන්න).
ඔබට පහත විධානය භාවිතා කළ හැකි යැයි මම සිතමි: git reset --hard
අතුරුදහන් නොවන බව පෙනෙන ලිපිගොනු තවමත් තිබිය හැකි බව කරුණාවෙන් සලකන්න - ඒවා සංස්කරණය නොකළ ඒවා විය හැකිය, නමුත් CRLF / LF වෙනස්වීම් නිසා ඒවා සංස්කරණය කළ බව git විසින් සලකුණු කර ඇත. ඔබ .gitattributes
මෑතකදී යම් යම් වෙනස්කම් කර ඇත්දැයි බලන්න .
මගේ නඩුවේදී මම CRLF සැකසුම් .gitattributes
ගොනුවට එකතු කර ඇති අතර සියලුම ලිපිගොනු "නවීකරණය කරන ලද ගොනු" ලැයිස්තුවේ පවතී. .Gitattributes සැකසුම් වෙනස් කිරීමෙන් ඒවා අතුරුදහන් විය.
ඔබගේ නවතම බැඳීමෙහි පිටපත වෙත ආපසු යාමට ඔබ බලාපොරොත්තු නොවූ වෙනසක් (එය ඔබගේ වැඩ කරන පිටපතෙහි පමණක්) තිබේ නම්, පහත සඳහන් දේ කරන්න:
git checkout filename
git rm filename
වන අතර එය ක්රියාත්මක නොවේ. error: pathspec 'filename' did not match any file(s) known to git.
git rm
කිරීම සඳහා විසඳුම නම්git checkout master -- filename
git restore
වැඩ කරන ගස් ලිපිගොනු යථා තත්වයට පත් කිරීම සඳහා Git 2.23 විධානය හඳුන්වා දුන්නේය .
https://git-scm.com/docs/git-restore
වත්මන් නාමාවලියෙහි ඇති සියලුම ගොනු ප්රතිස්ථාපනය කිරීමට
git යථා තත්වයට පත් කරන්න.
දර්ශකයේ අනුවාදයට ගැලපෙන පරිදි සියලුම සී ප්රභව ගොනු ප්රතිස්ථාපනය කිරීමට ඔබට අවශ්ය නම්, ඔබට එය කළ හැකිය
git restore '* .c'
ඔබට පහත දැක්වෙන git විධානය භාවිතා කළ හැකි අතර එමඟින් ඔබේ ගබඩාවේ සිදු නොවූ සියලු වෙනස්කම් ආපසු ලබා ගත හැකිය:
git checkout .
උදාහරණයක්:
ABC@ABC-PC MINGW64 /c/xampp/htdocs/pod_admin (master)
$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: application/controllers/Drivers.php
modified: application/views/drivers/add.php
modified: application/views/drivers/load_driver_info.php
modified: uploads/drivers/drivers.xlsx
no changes added to commit (use "git add" and/or "git commit -a")
ABC@ABC-PC MINGW64 /c/xampp/htdocs/pod_admin (master)
$ git checkout .
ABC@ABC-PC MINGW64 /c/xampp/htdocs/pod_admin (master)
$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
nothing to commit, working tree clean
ආරක්ෂිත සහ දිගු මාර්ගයක්:
git branch todelete
git checkout todelete
git add .
git commit -m "I did a bad thing, sorry"
git checkout develop
git branch -D todelete