Làm thế nào bạn có thể đặt các thay đổi không được cam kết vào một KIỂM TRA chi nhánh khi tôi ở chi nhánh master
?
Làm thế nào bạn có thể đặt các thay đổi không được cam kết vào một KIỂM TRA chi nhánh khi tôi ở chi nhánh master
?
Câu trả lời:
Bạn chỉ có thể kiểm tra chi nhánh thử nghiệm và sau đó cam kết. Bạn không mất những thay đổi không được cam kết khi chuyển sang chi nhánh khác.
Giả sử bạn đang ở chi nhánh chính:
git checkout test
git add .
git add deletedFile1
git add deletedFile2
...
git commit -m "My Custom Message"
Tôi không thực sự chắc chắn về các tệp đã bị xóa, nhưng tôi đoán chúng không được bao gồm khi bạn sử dụng git add .
Ngoài ra, bạn có thể tạo một nhánh mới và chuyển sang nó bằng cách thực hiện:
git checkout -b new_branch
git add .
Tôi sử dụng điều này mọi lúc vì tôi luôn quên bắt đầu một chi nhánh mới trước khi bắt đầu chỉnh sửa mã.
Tại sao không chỉ sử dụng git stash. Tôi nghĩ rằng nó trực quan hơn như sao chép và dán.
$ git branch
develop
* master
feature1
TEST
$
Bạn có một số tệp trong nhánh hiện tại của bạn mà bạn muốn di chuyển.
$ 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
$
Di chuyển đến chi nhánh khác.
$ git checkout TEST
Và áp dụng
$ 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
#
Tôi cũng thích git stash
vì tôi sử dụng git flow
, nó phàn nàn khi bạn muốn hoàn thành một nhánh tính năng trong khi vẫn có những thay đổi trong thư mục làm việc của bạn.
Giống như @Mike Bethany, điều này xảy ra với tôi mọi lúc vì tôi làm việc với một vấn đề mới trong khi quên tôi vẫn đang ở một chi nhánh khác. Vì vậy, bạn có thể giấu công việc của bạn, git flow feature finish...
và git stash apply
để mới git flow feature start ...
chi nhánh.
git stash
là cách ưa thích của tôi để đối phó với những thay đổi không được cam kết. Đó chắc chắn là một phương pháp trực quan khi bạn nghĩ về nó như cắt và dán.
git stash --include-untracked