जीआईटी - संघर्षों को संभालना
Wchar_support शाखा में परिवर्तन करें
जेरी पर काम कर रहा है wchar_supportडाली। वह कार्यों का नाम बदल देता है और परीक्षण के बाद, वह अपने बदलाव करता है।
[jerry@CentOS src]$ git branch
master
* wchar_support
[jerry@CentOS src]$ git diff
उपरोक्त आदेश निम्नलिखित परिणाम उत्पन्न करता है -
diff --git a/src/string_operations.c b/src/string_operations.c
index 8fb4b00..01ff4e0 100644
--- a/src/string_operations.c
+++ b/src/string_operations.c
@@ -1,7 +1,7 @@
#include <stdio.h>
#include <wchar.h>
-size_t w_strlen(const wchar_t *s)
+size_t my_wstrlen(const wchar_t *s)
{
const wchar_t *p = s;
कोड को सत्यापित करने के बाद वह अपने बदलाव करता है।
[jerry@CentOS src]$ git status -s
M string_operations.c
[jerry@CentOS src]$ git add string_operations.c
[jerry@CentOS src]$ git commit -m 'Changed function name'
[wchar_support 3789fe8] Changed function name
1 files changed, 1 insertions(+), 1 deletions(-)
[jerry@CentOS src]$ git push origin wchar_support
उपरोक्त आदेश निम्नलिखित परिणाम का उत्पादन करेगा -
Counting objects: 7, done.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (4/4), 409 bytes, done.
Total 4 (delta 1), reused 0 (delta 0)
To [email protected]:project.git
64192f9..3789fe8 wchar_support -> wchar_support
मास्टर ब्रांच में बदलाव करें
इस बीच, मास्टर शाखा में, टॉम एक ही फ़ंक्शन का नाम भी बदलता है और मास्टर शाखा में अपने परिवर्तनों को धक्का देता है।
[tom@CentOS src]$ git branch
* master
[tom@CentOS src]$ git diff
उपरोक्त आदेश निम्नलिखित परिणाम उत्पन्न करता है -
diff --git a/src/string_operations.c b/src/string_operations.c
index 8fb4b00..52bec84 100644
--- a/src/string_operations.c
+++ b/src/string_operations.c
@@ -1,7 +1,8 @@
#include <stdio.h>
#include <wchar.h>
-size_t w_strlen(const wchar_t *s)
+/* wide character strlen fucntion */
+size_t my_wc_strlen(const wchar_t *s)
{
const wchar_t *p = s;
अलग-अलग सत्यापित करने के बाद, वह अपने परिवर्तनों को करता है।
[tom@CentOS src]$ git status -s
M string_operations.c
[tom@CentOS src]$ git add string_operations.c
[tom@CentOS src]$ git commit -m 'Changed function name from w_strlen to my_wc_strlen'
[master ad4b530] Changed function name from w_strlen to my_wc_strlen
1 files changed, 2 insertions(+), 1 deletions(-)
[tom@CentOS src]$ git push origin master
उपरोक्त आदेश निम्नलिखित परिणाम का उत्पादन करेगा -
Counting objects: 7, done.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (4/4), 470 bytes, done.
Total 4 (delta 1), reused 0 (delta 0)
To [email protected]:project.git
64192f9..ad4b530 master -> master
पर wchar_supportशाखा, जेरी व्यापक चरित्र स्ट्रिंग के लिए strchr फ़ंक्शन लागू करता है। परीक्षण के बाद, वह अपने परिवर्तनों को करता है और धक्का देता हैwchar_support डाली।
[jerry@CentOS src]$ git branch
master
* wchar_support
[jerry@CentOS src]$ git diff
उपरोक्त आदेश निम्नलिखित परिणाम उत्पन्न करता है -
diff --git a/src/string_operations.c b/src/string_operations.c
index 01ff4e0..163a779 100644
--- a/src/string_operations.c
+++ b/src/string_operations.c
@@ -1,6 +1,16 @@
#include <stdio.h>
#include <wchar.h>
+wchar_t *my_wstrchr(wchar_t *ws, wchar_t wc)
+
{
+
while (*ws)
{
+
if (*ws == wc)
+
return ws;
+
++ws;
+
}
+ return NULL;
+
}
+
size_t my_wstrlen(const wchar_t *s)
{
const wchar_t *p = s;
सत्यापित करने के बाद, वह अपने परिवर्तन करता है।
[jerry@CentOS src]$ git status -s
M string_operations.c
[jerry@CentOS src]$ git add string_operations.c
[jerry@CentOS src]$ git commit -m 'Addded strchr function for wide character string'
[wchar_support 9d201a9] Addded strchr function for wide character string
1 files changed, 10 insertions(+), 0 deletions(-)
[jerry@CentOS src]$ git push origin wchar_support
उपरोक्त आदेश निम्नलिखित परिणाम का उत्पादन करेगा -
Counting objects: 7, done.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (4/4), 516 bytes, done.
Total 4 (delta 1), reused 0 (delta 0)
To [email protected]:project.git
3789fe8..9d201a9 wchar_support -> wchar_support
टैकल संघर्ष
टॉम देखना चाहता है कि जेरी अपनी निजी शाखा में क्या कर रहा है, इसलिए वह नवीनतम परिवर्तनों को खींचने की कोशिश करता है wchar_support शाखा, लेकिन Git निम्नलिखित त्रुटि संदेश के साथ ऑपरेशन को रोक देता है।
[tom@CentOS src]$ git pull origin wchar_support
उपरोक्त आदेश निम्नलिखित परिणाम उत्पन्न करता है -
remote: Counting objects: 11, done.
63Git Tutorials
remote: Compressing objects: 100% (8/8), done.
remote: Total 8 (delta 2), reused 0 (delta 0)
Unpacking objects: 100% (8/8), done.
From git.server.com:project
* branch
wchar_support -> FETCH_HEAD
Auto-merging src/string_operations.c
CONFLICT (content): Merge conflict in src/string_operations.c
Automatic merge failed; fix conflicts and then commit the result.
विवादों को सुलझाओ
त्रुटि संदेश से, यह स्पष्ट है कि src / string_operations.c में एक संघर्ष है। वह आगे विवरण देखने के लिए git diff कमांड चलाता है।
[tom@CentOS src]$ git diff
उपरोक्त आदेश निम्नलिखित परिणाम उत्पन्न करता है -
diff --cc src/string_operations.c
index 52bec84,163a779..0000000
--- a/src/string_operations.c
+++ b/src/string_operations.c
@@@ -1,8 -1,17 +1,22 @@@
#include <stdio.h>
#include <wchar.h>
++<<<<<<< HEAD
+/* wide character strlen fucntion */
+size_t my_wc_strlen(const wchar_t *s)
++=======
+ wchar_t *my_wstrchr(wchar_t *ws, wchar_t wc)
+
{
+
+
while (*ws)
{
if (*ws == wc)
+
return ws;
+
++ws;
+
}
+ return NULL;
+
}
+
+ size_t my_wstrlen(const wchar_t *s)
++>>>>>>>9d201a9c61bc4713f4095175f8954b642dae8f86
{
const wchar_t *p = s;
जैसा कि टॉम और जेरी दोनों ने एक ही फ़ंक्शन का नाम बदल दिया, Git भ्रम की स्थिति में है और यह उपयोगकर्ता को मैन्युअल रूप से संघर्ष को हल करने के लिए कहता है।
टॉम जेरी द्वारा सुझाए गए फ़ंक्शन का नाम रखने का फैसला करता है, लेकिन वह उसके द्वारा जोड़ा गया टिप्पणी रखता है, जैसा कि यह है। संघर्ष मार्करों को हटाने के बाद, गिट भिन्न इस तरह दिखाई देगा।
[tom@CentOS src]$ git diff
उपरोक्त आदेश निम्नलिखित परिणाम उत्पन्न करता है।
diff --cc src/string_operations.c
diff --cc src/string_operations.c
index 52bec84,163a779..0000000
--- a/src/string_operations.c
+++ b/src/string_operations.c
@@@ -1,8 -1,17 +1,18 @@@
#include <stdio.h>
#include <wchar.h>
+ wchar_t *my_wstrchr(wchar_t *ws, wchar_t wc)
+
{
+
while (*ws)
{
+
if (*ws == wc)
+
return ws;
+
++ws;
+
}
+ return NULL;
+
}
+
+/* wide character strlen fucntion */
- size_t my_wc_strlen(const wchar_t *s)
+ size_t my_wstrlen(const wchar_t *s)
{
const wchar_t *p = s;
जैसा कि टॉम ने फाइलों को संशोधित किया है, उसे पहले इन परिवर्तनों को करना होगा और उसके बाद, वह परिवर्तनों को खींच सकता है।
[tom@CentOS src]$ git commit -a -m 'Resolved conflict'
[master 6b1ac36] Resolved conflict
[tom@CentOS src]$ git pull origin wchar_support.
टॉम ने संघर्ष को हल कर दिया है, अब पुल ऑपरेशन सफल होगा।