Giả sử tôi có 5 cam kết địa phương. Tôi muốn chỉ đẩy 2 người trong số họ đến một repo tập trung (sử dụng quy trình làm việc theo kiểu SVN). Làm thế nào để tôi làm điều này?
Điều này đã không làm việc:
git checkout HEAD~3 #set head to three commits ago
git push #attempt push from that head
Điều đó kết thúc đẩy tất cả 5 cam kết địa phương.
Tôi cho rằng tôi có thể thực hiện thiết lập lại git để thực sự hoàn tác các cam kết của mình, tiếp theo là git stash và sau đó git đẩy - nhưng tôi đã có các thông báo cam kết được viết và các tệp được sắp xếp và tôi không muốn làm lại chúng.
Cảm giác của tôi là một số cờ được truyền để đẩy hoặc đặt lại sẽ hoạt động.
Nếu nó giúp, đây là cấu hình git của tôi
[ramanujan:~/myrepo/.git]$cat config
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[remote "origin"]
url = ssh://server/git/myrepo.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
master~3
. Bất kỳ tài liệu tham khảo để mong muốn "lên đến" cam kết là giá trị ngang nhau, chẳng hạn nhưHEAD~3
hayHEAD~~~
, hoặc SHA cụ thể, hoặc một thẻ mà nhãn cam kết.