2012-03-16 2 views
1

Используя Emacs/Magit, у меня сначала был очень плавный git опыт в другом проекте, но в моем фактическом проекте я смущен всеми ветвями и раздражен не отслеживаемым #file. ext #, который появляется во время. Вот как это выглядит:(Ma) git branch drive me crazy

a4cc383 master [remotes//master] 
e08a624 origin-master [remotes/origin/master] 
6a64828 tj-branch 
a4cc383 remotes/origin/master 

То, что я планировал сделать, это работать на моей личной ветке (TJ-ветви), фиксации, а затем слиться с мастером, а затем нажмите на удаленный репозиторий. Но у меня слишком много ветвей мастера для моего вкуса. Я ожидал бы, что источник-хозяин будет ветвью отслеживания и обработает его локальную копию. Но тогда мне понадобилось бы 2 слияния, прежде чем я смогу нажать - не тогда ли избыточная tj-ветвь?

насчет

a4cc383 remotes/origin/master 

Это филиал тоже? Почему он существует, зачем он мне нужен?

Мои вопросы:

  1. который разветвляется мне действительно нужно, которые могут быть удалены?

  2. от моей местной ветви - какой мастер мне нужно проверить, а затем слить с помощью моих изменений: мастер или источник-мастер?

  3. Когда я пытаюсь сменить ветви, меня часто просят сохранить открытые буферы emacs, а затем сказали: «Файл сменился на диске, вы действительно хотите изменить», и его очень запутанно, потому что я не знаю иногда какая из них - новая версия - на диске или в буфере. Откуда эта проблема?

Извините за довольно нуб вопрос, я читал некоторые хорошие учебники о мерзавцем, но до сих пор не получить мой heasd вокруг основных ветвей.

ответ

1

пожалуйста найти ответ следующим образом:

который разветвляется мне действительно нужно, которые могут быть удалены?

Теперь я вижу следующие ветки из журналов:

  1. a4cc383 мастер [перепятнышки // мастер] (? ?? Я не знаю, почему у вас есть эта отрасль, какую операцию вы сделали)
  2. e08a624 origin-master [remotes/origin/master] // эта ветка в порядке, она представляет ваш удаленный мастер, если вы используете git fetch, вы можете получить последнее изменение этой ветви.
  3. 6a64828 tj-branch // Это нормально, ваша ветка.
  4. a4cc383 remotes/origin/master // Я не уверен, почему у вас есть два пульта дистанционного управления/origin/master, но другое значение sha.

На самом деле вы можете зайти в свою папку .git и cd refs, в этой папке ваша локальная ветка будет в refs/heads/....., вы должны быть здесь: refs/remotes/origin/xxx

от моей местной ветви - какой мастер мне нужно проверить, а затем слить с помощью моих изменений: мастер или источник-мастер?

Вы можете оформить вашу тему от хозяина, сделать некоторые изменения, их фиксации, мастер мерзавца фотографии и мерзавцем объединить ваши изменения, после этого нажать ваши изменения, как это, мерзавец толчок происхождение [по умолчанию имени вашего удаленному репо] хозяин [местный филиал]: мастер [отдаленная отрасль] // git настолько умный.

Когда я пытаюсь сменить ветви, меня часто просят сохранить открытые буферы emacs, а затем сказали: «Файл изменился на диск, вы действительно хотите изменить», и его очень запутанно, потому что я не иногда знаю, какая из них - новая версия - на диске или в буфере. Откуда эта проблема?

Вы должны зафиксировать ваши локальные изменения перед проверкой, если вы не хотите, чтобы совершить, вы можете использовать Git тайник // это будет держать вас изменится, если вы хотите, чтобы восстановить его, вы можете использовать Git копить применять

Надеюсь, это полезно для вас.

Br, Tim

+0

спасибо Тим, это было довольно полезно, теперь я знаю, какие ветви мне действительно нужно, и которые я должен скорее удалить. Это сделает вещи менее запутанными и, вероятно, избежит других (вторичных) проблем. – Thorsten