Nếu chi nhánh của bạn (cái cũ) một lần nữa được hợp nhất trở lại cái chính không cho kết quả mong đợi, tôi phải sử dụng tập lệnh python để tìm Id cam kết chi nhánh ban đầu.
git rev-list - tập hợp thay đổi cha đầu tiên
- cha mẹ đầu tiên chỉ theo dõi cam kết mẹ đầu tiên khi thấy một cam kết hợp nhất.
Lặp lại các tập thay đổi từ lệnh trên cho đến khi tìm thấy nhánh cha.
def status_check(exec_command, exec_dir=None, background=False):
if exec_dir:
os.chdir(exec_dir)
res = subprocess.Popen(exec_command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
if not background:
result = res.communicate()
return result
def findNewBranchCommits(changeset=None):
cmd = "git rev-list --first-parent "+ changeset
rev_list = status_check(cmd,self.module_dir)
rev_list = str(rev_list[0]).split('\n')
rev_list = list(filter(None, rev_list))
for x in rev_list: # Iterate until branch base point
rev_cmd = "git branch --contains " + x
rev_cmd = status_check(rev_cmd,self.module_dir)
rev_cmd = str(rev_cmd[0]).split('\n')
if(len(rev_cmd) > 2):
print "First Commit in xxx branch",x
break
findNewBranchCommits(changeset)