@Trả lời của khách hàng là chính xác. Dù sao tôi đã kết thúc sử dụng này rất nhiều lần, hầu hết tất cả để rebase cấu hình cụ thể về một dự án
* a8f9182 (HEAD -> production) production configuration
| * daa18b7 (pre) preproduction configuration
|/
| * d365f5f (local) local configuration
|/
* 27d2835 (dev) amazing new feature that will save the world
* | 56d2467 (master) boring state of the art for project
|/
mà tôi tạo ra một lệnh mới cho nó:
$ cat ~/bin/git-rebaseshot
COMMIT=$1
DEST=${2:-HEAD}
git rebase ${COMMIT}^ ${COMMIT} --onto $DEST
thông thường bạn muốn tự động hoàn thành tên chi nhánh cho lệnh đó, vì vậy nó thêm nguồn chức năng này (thêm vào .bashrc hoặc .profile):
_git_rebaseshot()
{
__gitcomp_nl "$(__git_refs)"
}
git autocomplete sẽ tìm kiếm nó
.210
bạn có thể sử dụng lệnh này như sau:
# rebase config on prepro on actual HEAD
$ git rebaseshot prepro
# rebase config on local onto dev
$ git rebaseshot local dev
# rebase production config on master
$ git rebaseshot pro master
Khi bạn chia các tính năng một cách chính xác, possibities là vô tận.
* a8f9182 (HEAD -> postgres) BBDD config
* a8f9182 (local) local config
* a8f9182 (debug) log level config
* a8f9182 (dev) new feature
|
Tôi đoán đây là những gì quilt những người thích làm.
lệnh này sẽ làm việc nào với bất cứ điều gì sha/ref bạn cung cấp:
$ git rebaseshot <Feature branch> master
$ git rebaseshot <commit of XX> master
Nếu bạn có thể rebase bất kỳ số lượng cam kết thì tại sao bạn hỏi về rebasing một duy nhất? Nếu tôi có thể đặt câu hỏi trong SO, tôi sẽ hỏi sự khác biệt giữa rebasing (một commit) và cherry-pick. – Val
Bởi vì tôi không biết rằng anh đào hái có tồn tại, và tôi "Faff về chi nhánh", "Nhận yêu cầu sửa chữa trên chi nhánh khác nhau", "sửa chữa nó", "Cam kết chi nhánh sai", "D'OH! " đủ để đặt câu hỏi là hữu ích. –