Skip to content

Commit a8434d3

Browse files
feat-krishnaacharyaa#378: created readme for git conflicts
1 parent af322ce commit a8434d3

File tree

1 file changed

+77
-0
lines changed

1 file changed

+77
-0
lines changed

Diff for: GIT_CONFLICTS.md

+77
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
# Wanderlust Project
2+
3+
## Overview
4+
Welcome to the Wanderlust project! This is a collaborative effort to build an amazing application. We appreciate your contributions and aim to make the process as smooth as possible.
5+
6+
## Common QnA for Git and Open Source Contributions
7+
8+
<details>
9+
<summary>
10+
11+
### How can I know if I’m in a bad situation?
12+
</summary>
13+
I suggest you to run **`gitk`** or **`gitk --all`**. The commit tree should be self-explainatory.
14+
15+
Also, if **`git log`** shows you any merge commits, this means that it isn’t properly synced with the upstream branch
16+
</details>
17+
18+
### How to Hard Sync Master with Upstream
19+
To hard sync your local master branch with the upstream master branch, follow these steps in your main branch:
20+
```
21+
git remote add upstream /url-to-original-repo
22+
git fetch upstream
23+
git reset --hard upstream/main
24+
git push origin main --force
25+
```
26+
## Better commits
27+
28+
You should not push what is not needed. Doing **`git commit -a`**, instead, commits just everything. This, often, is bad.
29+
You’d better use **`git add`** and, most of all, **`git add -p`**
30+
**`-p`** stays for “patch”: it will ask, for each “block” of code which you could commit, if you really want to commit it.
31+
It is very simple to use, and will make you more responsible about what you’re commiting.
32+
33+
If you want to make sure about what you’re commiting, use **`git diff --cached`**, it will display the ready-to-commit changes.
34+
Also, I like to use **`git commit -v`**, which displays the diff as a comment, so that I can view it while writing the commit message.
35+
36+
## Edit a commit
37+
Sometimes you committed something, but someone asks you to fix something, or you want to fix something yourself. Instead of making a new commit, you can also edit the previous commit(s).
38+
39+
**`git reset --soft HEAD^`** (will reset the commit history to the previous commit. The —soft option makes sure the files don’t get reset too)
40+
Then edit whatever you want to edit
41+
**`git commit -a -v -c ORIG_HEAD`** (recommits with the same commit message. Because of the -v option, you can check if everything goes well)
42+
43+
If you do this after pushing, you’ll have to use **`git push -f`** next time you try to push.
44+
45+
## What should I do if I’m in a bad situation?
46+
47+
[](https://github.com/emesene/emesene/wiki/GitHowTo#what-should-i-do-if-im-in-a-bad-situation)
48+
49+
rebase.
50+
Just do **`git fetch main`** (fetch the latest changes from the upstream branch)
51+
**`git rebase upstream/main`** (rebase upon the upstream branch)
52+
53+
Sometimes, if you have any merge commits in your branch, this won’t work. The best way to get rid of them is using **`git fetch upstream`** (this will fetch the latest changes of the upstream branch) and then do **`git reset --hard upstream/main`**. BE AWARE THAT THIS WILL THROW AWAY ALL YOUR CHANGES.
54+
55+
If you want to keep your changes, you can put them in a different branch first **`git branch branchname`**. Now you’ll have a branch with your committed changes backed up. It’s now safe to reset. If you want to pull the changes back to your master branch, you could use **`git cherry-pick branchname 1234567890abcdef1234567890abcdef12345678`**, where 1234567890abcdef1234567890abcdef12345678 is the commit you want in your master branch.
56+
57+
58+
### Recovering from a bad merge or accidental deletion
59+
```
60+
git reflog
61+
git reset HEAD@{index}
62+
```
63+
### Amending the last commit
64+
```
65+
git commit --amend --no-edit
66+
```
67+
68+
### Changing the last commit message
69+
```
70+
git commit --amend
71+
```
72+
73+
### Undoing a commit from several commits ago
74+
```
75+
git log
76+
git revert [saved hash]
77+
```

0 commit comments

Comments
 (0)