I am a newbie to Git and having trouble understanding how to use Git. I have been using CVS so going through some learning curve for Git. Here is what all I tried
Now I had changed only two files PromoServiceImpl.java and build.sql. However having trouble merging changed from "product" branch.
Remaining files that you see (like ApiServiceImpl.java etc) are changes from other users but I am not sure if the representation here suggests that I have changed them. Prob it got merged during earlier pull commands and now it expects me to commit them ??
No matter whatever is the flow of commands I follow (even after some Google search) I see the following error:
You have not concluded your merge (MERGE_HEAD exists) Please, commit your changes before you can merge.
Here is the sequence of commands I followed and output (tried to make it pretty by inserting new lines for everyone to read). Also this error comes back even after taking changes from repository afresh so I am sure I am doing something wrong rather than some issue with git.
kamal@kamal-Lenovo-G470:~/git/TryGit$ gs
# On branch product
# Your branch is ahead of 'origin/product' by 1 commit.
#
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: TryGitServices/src/main/java/com/TryGit/services/promo/impl/PromoServiceImpl.java
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# Adding
no changes added to commit (use "git add" and/or "git commit -a")
kamal@kamal-Lenovo-G470:~/git/TryGit$ git pull origin product
From ssh://192.168.2.251/TryGit
* branch product -> FETCH_HEAD
Auto-merging TryGitResources/build/build.sql
CONFLICT (content): Merge conflict in TryGitResources/build/build.sql
Automatic merge failed; fix conflicts and then commit the result.
kamal@kamal-Lenovo-G470:~/git/TryGit$ gs
# On branch product
# Your branch is ahead of 'origin/product' by 1 commit.
#
# Changes to be committed:
#
# modified: TryGitCore/src/main/java/com/TryGit/core/api/binding.xml
# modified: TryGitServices/src/main/java/com/TryGit/services/api/impl/ApiServiceImpl.java
# modified: TryGitServices/src/main/java/com/TryGit/services/common/impl/StartupServiceImpl.java
# modified: TryGitWeb/src/main/webapp/WEB-INF/wsdl/TryGit.wsdl
# modified: TryGitWeb/src/main/webapp/static/css/TryGit/homeDeal.css
# modified: TryGitWeb/src/main/webapp/static/css/TryGit/TryGit.css
# modified: TryGitWeb/src/main/webapp/static/img/TryGit/sprite/TryGit.png
# modified: TryGitWeb/src/main/webapp/views/admin/createPromoCode.jsp
# modified: TryGitWeb/src/main/webapp/views/admin/product/productAdmin.jsp
# modified: TryGitWeb/src/main/webapp/views/deal/homePage.jsp
#
# Unmerged paths:
# (use "git add/rm <file>..." as appropriate to mark resolution)
#
# both modified: TryGitResources/build/build.sql
#
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: TryGitServices/src/main/java/com/TryGit/services/promo/impl/PromoServiceImpl.java
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# Adding
kamal@kamal-Lenovo-G470:~/git/TryGit$ git reset TryGitResources/build/build.sql
Unstaged changes after reset:
M TryGitResources/build/build.sql
M TryGitServices/src/main/java/com/TryGit/services/promo/impl/PromoServiceImpl.java
kamal@kamal-Lenovo-G470:~/git/TryGit$ gs
# On branch product
# Your branch is ahead of 'origin/product' by 1 commit.
#
# Changes to be committed:
#
# modified: TryGitCore/src/main/java/com/TryGit/core/api/binding.xml
# modified: TryGitResources/build/build.sql
# modified: TryGitServices/src/main/java/com/TryGit/services/api/impl/ApiServiceImpl.java
# modified: TryGitServices/src/main/java/com/TryGit/services/common/impl/StartupServiceImpl.java
# modified: TryGitWeb/src/main/webapp/WEB-INF/wsdl/TryGit.wsdl
# modified: TryGitWeb/src/main/webapp/static/css/TryGit/homeDeal.css
# modified: TryGitWeb/src/main/webapp/static/css/TryGit/TryGit.css
# modified: TryGitWeb/src/main/webapp/static/img/TryGit/sprite/TryGit.png
# modified: TryGitWeb/src/main/webapp/views/admin/createPromoCode.jsp
# modified: TryGitWeb/src/main/webapp/views/admin/product/productAdmin.jsp
# modified: TryGitWeb/src/main/webapp/views/deal/homePage.jsp
#
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: TryGitResources/build/build.sql
# modified: TryGitServices/src/main/java/com/TryGit/services/promo/impl/PromoServiceImpl.java
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# Adding
kamal@kamal-Lenovo-G470:~/git/TryGit$ git stash
Saved working directory and index state WIP on product: b8bb080 changing build.sql for RBT task
HEAD is now at b8bb080 changing build.sql for RBT task
kamal@kamal-Lenovo-G470:~/git/TryGit$ gs
# On branch product
# Your branch is ahead of 'origin/product' by 1 commit.
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# Adding
nothing added to commit but untracked files present (use "git add" to track)
kamal@kamal-Lenovo-G470:~/git/TryGit$ git reset Adding
kamal@kamal-Lenovo-G470:~/git/TryGit$ git reset Adding
kamal@kamal-Lenovo-G470:~/git/TryGit$ gs
# On branch product
# Your branch is ahead of 'origin/product' by 1 commit.
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# Adding
nothing added to commit but untracked files present (use "git add" to track)
kamal@kamal-Lenovo-G470:~/git/TryGit$ git rm Adding
fatal: pathspec 'Adding' did not match any files
kamal@kamal-Lenovo-G470:~/git/TryGit$ man git rm
kamal@kamal-Lenovo-G470:~/git/TryGit$ git rm Adding
fatal: pathspec 'Adding' did not match any files
kamal@kamal-Lenovo-G470:~/git/TryGit$ gs
# On branch product
# Your branch is ahead of 'origin/product' by 1 commit.
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# Adding
nothing added to commit but untracked files present (use "git add" to track)
kamal@kamal-Lenovo-G470:~/git/TryGit$ git pull origin product
remote: Counting objects: 566, done.
remote: Compressing objects: 100% (316/316), done.
remote: Total 386 (delta 207), reused 0 (delta 0)
Receiving objects: 100% (386/386), 203.81 KiB, done.
Resolving deltas: 100% (207/207), completed with 56 local objects.
From ssh://192.168.2.251/TryGit
* branch product -> FETCH_HEAD
Auto-merging TryGitResources/build/build.sql
CONFLICT (content): Merge conflict in TryGitResources/build/build.sql
Automatic merge failed; fix conflicts and then commit the result.
kamal@kamal-Lenovo-G470:~/git/TryGit$ git pull origin product
M TryGitCore/src/main/java/com/TryGit/core/api/binding.xml
U TryGitResources/build/build.sql
M TryGitServices/src/main/java/com/TryGit/services/api/impl/ApiServiceImpl.java
M TryGitServices/src/main/java/com/TryGit/services/common/impl/StartupServiceImpl.java
M TryGitWeb/src/main/webapp/WEB-INF/wsdl/TryGit.wsdl
M TryGitWeb/src/main/webapp/static/css/TryGit/homeDeal.css
M TryGitWeb/src/main/webapp/static/css/TryGit/TryGit.css
M TryGitWeb/src/main/webapp/static/img/TryGit/sprite/TryGit.png
M TryGitWeb/src/main/webapp/views/admin/createPromoCode.jsp
M TryGitWeb/src/main/webapp/views/admin/product/productAdmin.jsp
M TryGitWeb/src/main/webapp/views/deal/homePage.jsp
Pull is not possible because you have unmerged files.
Please, fix them up in the work tree, and then use 'git add/rm <file>'
as appropriate to mark resolution, or use 'git commit -a'.
kamal@kamal-Lenovo-G470:~/git/TryGit$ git add TryGitResources/build/build.sql
kamal@kamal-Lenovo-G470:~/git/TryGit$ git pull origin product
You have not concluded your merge (MERGE_HEAD exists).
Please, commit your changes before you can merge.
kamal@kamal-Lenovo-G470:~/git/TryGit$ gs
# On branch product
# Your branch is ahead of 'origin/product' by 1 commit.
#
# Changes to be committed:
#
# modified: TryGitCore/src/main/java/com/TryGit/core/api/binding.xml
# modified: TryGitResources/build/build.sql
# modified: TryGitServices/src/main/java/com/TryGit/services/api/impl/ApiServiceImpl.java
# modified: TryGitServices/src/main/java/com/TryGit/services/common/impl/StartupServiceImpl.java
# modified: TryGitWeb/src/main/webapp/WEB-INF/wsdl/TryGit.wsdl
# modified: TryGitWeb/src/main/webapp/static/css/TryGit/homeDeal.css
# modified: TryGitWeb/src/main/webapp/static/css/TryGit/TryGit.css
# modified: TryGitWeb/src/main/webapp/static/img/TryGit/sprite/TryGit.png
# modified: TryGitWeb/src/main/webapp/views/admin/createPromoCode.jsp
# modified: TryGitWeb/src/main/webapp/views/admin/product/productAdmin.jsp
# modified: TryGitWeb/src/main/webapp/views/deal/homePage.jsp
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# Adding
kamal@kamal-Lenovo-G470:~/git/TryGit$ git pull origin product
You have not concluded your merge (MERGE_HEAD exists).
Please, commit your changes before you can merge.
kamal@kamal-Lenovo-G470:~/git/TryGit$
There are a couple of things going on here. It helps to understand what happens when you issue various Git commands.
The pull
command (as in git pull
) results in a fetch
followed by a merge
. So when you did a pull
kamal@kamal-Lenovo-G470:~/git/TryGit$ git pull origin product
Git tried to pull in changes from the default remote repository
From ssh://192.168.2.251/TryGit
* branch product -> FETCH_HEAD
and merge them in.
Auto-merging TryGitResources/build/build.sql
In so doing it encountered a conflict
CONFLICT (content): Merge conflict in TryGitResources/build/build.sql
Automatic merge failed; fix conflicts and then commit the result.
Git maintains this 3 versions of the file pending a merge -- your changes, changes pulled in and the common ancestor. The version pulled in is temporarily stored in MERGE_HEAD.
You can see the differences with a git diff
invocation. At this point you need to fix the conflicts that Git was unable to automatically resolve. Once you have fixed it simply perform the usual git add
followed by a git commit
. This process is also explained in the examples section of the man page for the commit
command.
Oh! And it appears you have a file called Adding
. Note that the git status
command ends with
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# Adding
This happens when you ask Git to track a directory (such as when you did git init .
). From then on Git monitors changes in the specified location. The above is saying that "I see that you have added a file called Adding. I don't know much more about it (it is untracked)." Once you add it, Git starts tracking changes (can tell you what has changed with it over time).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With