Git -Tutorial


Git und {{title}}


Git- Beitrag


Git- Erweitert


Git rückgängig machen




Git- Branch-Merge


Filialen zusammenführen

Wir haben den Notfall-Fix bereit, also lasst uns die Haupt- und Notfall-Fix-Zweige zusammenführen.

Zuerst müssen wir in den Master-Zweig wechseln:

Beispiel

git checkout master
Switched to branch 'master'

Jetzt führen wir den aktuellen Zweig (Master) mit Emergency-Fix ​​zusammen:

Beispiel

git merge emergency-fix
Updating 09f4acd..dfa79db
Fast-forward
 index.html | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Da der Emergency-Fix-Zweig direkt vom Master kam und während unserer Arbeit keine weiteren Änderungen am Master vorgenommen wurden, sieht Git dies als eine Fortsetzung des Masters. Es kann also "schnell vorspulen", indem es einfach sowohl Master als auch Emergency-Fix ​​auf denselben Commit zeigt.

Da Master und Emergency-Fix ​​jetzt im Wesentlichen gleich sind, können wir Emergency-Fix ​​löschen, da es nicht mehr benötigt wird:

Beispiel

git branch -d emergency-fix
Deleted branch emergency-fix (was dfa79db).

Konflikt zusammenführen

Jetzt können wir zu hello-world-images übergehen und weiterarbeiten. Fügen Sie eine weitere Bilddatei hinzu (img_hello_git.jpg) und ändern Sie index.html, sodass sie angezeigt wird:

Beispiel

git checkout hello-world-images
Switched to branch 'hello-world-images'

Beispiel

<!DOCTYPE html>
<html>
<head>
<title>Hello World!</title>
<link rel="stylesheet" href="bluestyle.css">
</head>
<body>

<h1>Hello world!</h1>
<div><img src="img_hello_world.jpg" alt="Hello World from Space" style="width:100%;max-width:960px"></div>
<p>This is the first file in my new Git Repo.</p>
<p>A new line in our file!</p>
<div><img src="img_hello_git.jpg" alt="Hello Git" style="width:100%;max-width:640px"></div>

</body>
</html>

Jetzt sind wir mit unserer Arbeit hier fertig und können für diesen Zweig inszenieren und verpflichten:

Beispiel

git add --all
git commit -m "added new image"
[hello-world-images 1f1584e] added new image
 2 files changed, 1 insertion(+)
 create mode 100644 img_hello_git.jpg

Wir sehen, dass index.html in beiden Zweigen geändert wurde. Jetzt können wir hello-world-images in master zusammenführen. Aber was passiert mit den Änderungen, die wir kürzlich in master vorgenommen haben?

Beispiel

git checkout master
git merge hello-world-images
Auto-merging index.html
CONFLICT (content): Merge conflict in index.html
Automatic merge failed; fix conflicts and then commit the result.

Die Zusammenführung ist fehlgeschlagen, da ein Konflikt zwischen den Versionen für index.html besteht. Lassen Sie uns den Status überprüfen:

Beispiel

git status
On branch master
You have unmerged paths.
  (fix conflicts and run "git commit")
  (use "git merge --abort" to abort the merge)

Changes to be committed:
        new file:   img_hello_git.jpg
        new file:   img_hello_world.jpg

Unmerged paths:
  (use "git add <file>..." to mark resolution)
        both modified:   index.html

Dies bestätigt, dass es einen Konflikt in index.html gibt, aber die Bilddateien sind bereit und bereitgestellt, um festgeschrieben zu werden.

Also müssen wir diesen Konflikt lösen. Öffnen Sie die Datei in unserem Editor:

Beispiel

<!DOCTYPE html>
<html>
<head>
<title>Hello World!</title>
<link rel="stylesheet" href="bluestyle.css">
</head>
<body>

<h1>Hello world!</h1>
<div><img src="img_hello_world.jpg" alt="Hello World from Space" style="width:100%;max-width:960px"></div>
<p>This is the first file in my new Git Repo.</p>
<<<<<<< HEAD
<p>This line is here to show how merging works.</p>
=======
<p>A new line in our file!</p>
<div><img src="img_hello_git.jpg" alt="Hello Git" style="width:100%;max-width:640px"></div>
>>>>>>> hello-world-images

</body>
</html>

Wir können die Unterschiede zwischen den Versionen sehen und sie nach Belieben bearbeiten:

Beispiel

<!DOCTYPE html>
<html>
<head>
<title>Hello World!</title>
<link rel="stylesheet" href="bluestyle.css">
</head>
<body>

<h1>Hello world!</h1>
<div><img src="img_hello_world.jpg" alt="Hello World from Space" style="width:100%;max-width:960px"></div>
<p>This is the first file in my new Git Repo.</p>
<p>This line is here to show how merging works.</p>
<div><img src="img_hello_git.jpg" alt="Hello Git" style="width:100%;max-width:640px"></div>

</body>
</html>

Jetzt können wir index.html inszenieren und den Status überprüfen:

Beispiel

git add index.html
git status
On branch master
All conflicts fixed but you are still merging.
  (use "git commit" to conclude merge)

Changes to be committed:
        new file:   img_hello_git.jpg
        new file:   img_hello_world.jpg
        modified:   index.html

Der Konflikt wurde behoben und wir können commit verwenden, um die Zusammenführung abzuschließen:

Beispiel

git commit -m "merged with hello-world-images after fixing conflicts"
[master e0b6038] merged with hello-world-images after fixing conflicts

Und löschen Sie den Zweig hello-world-images:

Beispiel

git branch -d hello-world-images
Deleted branch hello-world-images (was 1f1584e).

Jetzt haben Sie ein besseres Verständnis dafür, wie Verzweigungen und Zusammenführungen funktionieren. Zeit, mit einem Remote-Repository zu arbeiten!

Testen Sie sich mit Übungen

Übung:

Führen Sie den hello-youZweig mit dem aktuellen Zweig zusammen:

git  hello-you