วิธีที่คุณสามารถนำการเปลี่ยนแปลงปราศจากข้อผูกมัดที่จะทดสอบสาขาเมื่อฉันที่สาขาmaster
?
วิธีที่คุณสามารถนำการเปลี่ยนแปลงปราศจากข้อผูกมัดที่จะทดสอบสาขาเมื่อฉันที่สาขาmaster
?
คำตอบ:
คุณสามารถเช็คเอาต์ไปที่สาขาการทดสอบแล้วส่ง คุณจะไม่สูญเสียการเปลี่ยนแปลงที่ไม่ได้ตั้งใจเมื่อย้ายไปที่สาขาอื่น
หากว่าคุณอยู่ที่สาขาหลัก:
git checkout test
git add .
git add deletedFile1
git add deletedFile2
...
git commit -m "My Custom Message"
ฉันไม่แน่ใจเกี่ยวกับไฟล์ที่ถูกลบจริงๆ แต่ฉันเดาว่ามันจะไม่ถูกรวมเมื่อคุณใช้ git add .
นอกจากนี้คุณสามารถสร้างสาขาใหม่และสลับไปที่สาขาโดยทำ:
git checkout -b new_branch
git add .
ฉันใช้สิ่งนี้ตลอดเวลาเพราะฉันมักจะลืมที่จะเริ่มสาขาใหม่ก่อนที่จะเริ่มแก้ไขรหัส
ทำไมไม่ใช้ git stash ฉันคิดว่ามันใช้งานง่ายกว่าการคัดลอกและวาง
$ git branch
develop
* master
feature1
TEST
$
คุณมีไฟล์บางไฟล์ในสาขาปัจจุบันที่คุณต้องการย้าย
$ git status
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# modified: awesome.py
#
# Changed but not updated:
# (use "git add <file>..." to update what will be committed)
#
# modified: linez.py
#
$
$ git stash
Saved working directory and index state \
"WIP on master: 934beef added the index file"
HEAD is now at 934beef added the index file
(To restore them type "git stash apply")
$
$ git status
# On branch master
nothing to commit (working directory clean)
$
$
$ git stash list
stash@{0}: WIP on master: 934beef ...great changes
$
ย้ายไปสาขาอื่น
$ git checkout TEST
และนำไปใช้
$ git stash apply
# On branch master
# Changed but not updated:
# (use "git add <file>..." to update what will be committed)
#
# modified: awesome.py
# modified: linez.py
#
ฉันชอบgit stash
เพราะฉันใช้git flow
ซึ่งบ่นเมื่อคุณต้องการที่จะเสร็จสาขาในขณะที่ยังคงมีการเปลี่ยนแปลงในไดเรกทอรีการทำงานของคุณ
เช่นเดียวกับ @Mike Bethany สิ่งนี้เกิดขึ้นกับฉันตลอดเวลาเพราะฉันทำงานกับปัญหาใหม่ในขณะที่ลืมไปว่าฉันยังอยู่ในสาขาอื่น ดังนั้นคุณสามารถซ่อนงานของคุณgit flow feature finish...
และสาขาgit stash apply
ใหม่git flow feature start ...
git stash
เป็นวิธีที่ฉันต้องการในการจัดการกับการเปลี่ยนแปลงที่ไม่มีข้อผูกมัด แน่นอนว่ามันเป็นวิธีการที่ใช้งานง่ายเมื่อคุณคิดว่ามันถูกตัดและวาง
git stash --include-untracked
git checkout TEST
git add file1 file2
git commit