GIT
notes

RESOURCES

  • STEPS
  • npm init – create package.json
  • Press ^C at any time to quit.
    package name: (ns-whitelabel)
    version: (0.1.0)
    entry point: (index.js)
    git repository: (git@git.quantox.tech:Ciric/ns-forge-site.git)
    keywords:
    author:
    license: (ISC)
    About to write to /Users/SPIFFYshawneee/Documents/Git/ns-forge-site/package.json
  • npm install
  • font awesome error::::: npm install –save @fortawesome/fontawesome-free
  • npm audit fix –force or NOT>
  • NPM Audit - hold off

    https://www.voitanos.io/blog/don-t-be-alarmed-by-vulnerabilities-after-running-npm-install/
    How should you handle these audit reports?
    You have a few options, but what I advise my students to do is just ignore these warnings on a new project.

    Why? These are dependencies someone else has added to their package. You can’t just change the dependencies someone else has taken an expect nothing adverse to happen. Maybe things will work just fine, but does changing dependencies upstream sound like a trivial change? It shouldn’t… because it isn’t.

    That is why I ignore them and suggest you do the same.

    If you really want to be a good developer citizen, you should jump over to the package that takes the dependency, fork their repo, modify the dependency to remove the reference to the vulnerable package version & replace it with the “fixed” version, test to make sure everything still works, then submit a pull request (PR). Once the PR is merged in, other packages who take the dependency on that one will use the new dependency and the vulnerability will go away.

    Unfortunately, that isn’t always feasible because some of these packages don’t provide the source or accept PR’s, as in the case of many of the SPFx related packages by Microsoft. And do you really have the time to do that for 200+ vulnerabilities in a brand new project? I know I don’t…

    Why not just run “npm audit fix”?
    You shouldn’t just blindly upgrade the projects by running npm audit fix as the report says. That will automatically upgrade the package to the fixed version. While that may be easy & sound like what you want, consider if one of those fixes included different functionality, new or deprecated features or a different API signature?

    Yeah… stuff just breaks. And before you say “yeah but semver!”, know that not everyone has adopted or follows semver. Just because one package does follow semver doesn’t mean the dependencies it takes supports or follows it.

    list of “fix” items:

    • ini <1.3.6
      Prototype Pollution – https://npmjs.com/advisories/1589

    • lodash <4.17.19
      Prototype Pollution – https://npmjs.com/advisories/1523

    • node-forge <=0.9.2
      Severity: high
      Prototype Pollution in node-forge – https://npmjs.com/advisories/1561
    • — force

      Manually upgrading the vulnerable packages and running npm audit fix –force is going to have the same results. The only difference is that manually upgrading our packages will allow us to upgrade a single package, test for a breaking change, then update the next package, instead of just upgrading all of the packages at once, find a breaking change, then having no idea which package decided to screw things up.

      Will install react-scripts@3.4.4

    • node-forge <=0.9.2
      Severity: high
      Prototype Pollution in node-forge – https://npmjs.com/advisories/1561

  • ADD TO PACKAGE.JSON

    1) npm i –save-dev npm-force-resolutions

    2) Add this to your package.json

    “resolutions”: { “https-proxy-agent”: “^3.0.0” }

    3) Let npm-force-resolutions do it’s thing

    rm -r node_modules
    npx npm-force-resolutions
    npm install
    4) re-run your audit npm audit.

    Font: https://github.com/TooTallNate/node-https-proxy-agent/issues/84#issuecomment-543884972

  • 1ST Steps
  • [code]git clone –single-branch –branch &lt;branchname&gt; &lt;remote-repo&gt;[/code]
  • BOOK LINK:: https://git-scm.com/book/en/v2
  • – BRANCHES: https://git-scm.com/book/en/v2/Git-Branching-Branches-in-a-Nutshell
  • GOOD BASIC STEPS:: https://www.earthdatascience.org/workshops/intro-version-control-git/basic-git-commands/
  • GIT SYNC ISSUES
  • https://git-scm.com/docs/git-rebase
  • https://stackoverflow.com/questions/14344832/what-to-do-after-cloning-repo-from-git
  • Basic Start Off

    As jeremyharris said, the git documentation site and especially the online book there will get you up to speed on the basics.

    A few quick notes that might get you past your initial issue.

    git clone command is used to pull a copy (a clone) from an existing git repository. By default it creates a folder in the folder you execute it from that has a .git folder in it. The folder the cloning creates is your working copy and the .git folder is your local copy of the repository.

    git clone is different than most other git commands. All (or most?) other git commands require the command to be executed within the working copy folder created by the clone. (Bare repositories are a bit different since they don't have working copies, but that shouldn't apply here.) So, after doing:

    $ git clone <remote repo> <repo name> 
    

    do:

    $ cd <repo name>
    

    to get into the working copy before executing any other commands. Executing commands outside of the working folder will get you the not a git repository message.

    After making a change to a file, git add <filename> adds it to the index (marked to indicate ready to commit) and git commit -m '<commit message>' will then commit the changes.

  • (Article Below) https://code.visualstudio.com/docs/nodejs/reactjs-tutorial
    • GITLAB
    • CONFIG FILE: https://gist.github.com/josephrace/719bfc7e40f632fd7aa3940ef1ede59e
    • DEPLOYING: https://medium.com/recraftrelic/automating-reactjs-app-deployment-using-gitlab-12e0bf92461b
    • HOSTING: https://medium.com/front-end-weekly/host-your-react-app-with-gitlab-c3ef2f93d0a2
    • SETUP: https://codingislove.com/ci-setup-react-gitlab/

ALways Set Details

Always set your details before you create or clone repositories on a new system. This requires two commands in a terminal window:

git config –global user.name “Your Name”
git config –global user.email “you@your-domain.com”

The *global* option means that the setting will apply to every repository that you work with in the current user account.

To enable colors in the output, which can be very helpful, enter this command:

git config –global color.ui auto


GitPro - pdf12 Useful Git Commands + 10 IssuesGit - Cloning Not FreshN Commits BehindN Behind / Ahead / Sync



Always Set Details

Always set your details before you create or clone repositories on a new system. This requires two commands in a terminal window:

git config --global user.name "Your Name"
git config --global user.email "you@your-domain.com"

The *global* option means that the setting will apply to every repository that you work with in the current user account.

To enable colors in the output, which can be very helpful, enter this command:

git config --global color.ui auto


https://blog.prototypr.io/git-for-beginners-12-commands-you-need-to-know-e084cce9cc94

Basic Workflow Commands:

  1. git clone <url>

You’ll need to do this just once for each repository you work with. You can use SSH or HTTPS. It makes an exact copy of the entire repository on your local machine.

\2. git status

This is the most important Git command for beginners (arguably for all Git users). It can prevent you from getting into a lot of trouble. It will also help you gain a deeper understanding of how Git works, because it allows you to see what is happening behind the scenes.

What does git status do? It shows you everything you need to know about your current branch. It will show you:

  • what branch you are currently on
  • if your branch is up-to-date with the origin
  • if you have any unstaged changes
  • if you have any changes in your staging index that are ready to be committed (we will talk more about what a staging index is later)
  • if you have any changes that have been committed but not merged
  • useful tips on what to do with this information (Git can be very polite sometimes)

A quick look at my command line history shows that I run git status about every third command. I have a lot of favorite things— my favorite amino acid is proline, my favorite color of Sour Patch Kids is yellow (I know, I’m a monster), and my favorite Git command is git status.

Image for post

Fig.1. Here, git status shows me that I have modified two files (style.css and index.html) and added them to my staging index. I have also modified game.js (but I have not yet added those changes to my staging index).

\3. git diff

This will show you all the unstaged changes you have made. It’s different from git status which just shows you the names of the unstaged files you have changed.

Image for post

Pretty cool, huh? You can also do git diff --color-words to see only the words you have changed. This can be helpful if you have made a lot of changes, because git diff alone will highlight the entire line that has been changed. The output of git diff --color-words is easier on the eyes.

If you add all your files to your staging index, and you run git diff, you won’t see your change anymore. Don’t worry, you can run git diff --staged to see all the changes to the files in your staging index.

\4. git checkout -b <branch-name>

This is how you make a new branch and switch to that new branch, all in one command. Your branch names should be short but meaningful.

If you made a typo in your branch name, or otherwise just want to rename it, you can do git branch -m <new-branch-name> and that will rename your current branch.

\5. git add <file_name> and git add .

Warning: use git add . with caution! Never run git add . without looking at your git status first.

How does git add <file_name> work? It adds your modified file to your staging index. If you have modified more than one file, git add . will add all the files your have edited to your staging index.

With some twisted kind of Git sorcery, I have in the past accidentally added a whole bunch of files, including a whole bunch of changes that I didn’t actually make, to my staging index. This was terrifying. It’s not a huge deal, because you can unstage them with git reset HEAD <file_name>, but it is avoidable by running git status before adding anything to your staging index.

What the hell is a staging index? It’s where Git stores all your changes that are ready to be committed. If you’re into baseball, you can think of your staging index as being “on deck” and all your unstaged changes as being “in the hole” (if you’re not into baseball, forget I said that).

\6. git commit -m "<descriptive but short message about my commit>"

After running git add <file_name> or git add ., you must run git commit -m "<message>" (or you can unstage your changes if you don’t want to commit them, see above). Most likely, you’re going to want to commit your changes.

What’s this message thing about? You must provide a message with your commit. This can be very helpful for you and your fellow programmers if you provide a quality commit message. Here are some guidelines about commit messages:

  • keep commit messages short (under 50 characters)
  • make your commit messages descriptive
  • use the imperative mood (this just means make them sound like commands, so instead of “fixed, fixing, or fixes” just say “fix” )

Here are some examples of bad commit messages:

  • “Fix stuff” (this tells me nothing, please don’t do this)
  • “Adds test fixture” (this doesn’t use imperative mood, and it’s only slightly more descriptive than “fix stuff”)

Here are some examples of good commit messages:

  • “Fix typo in contact us section of landing page”
  • “Add test fixture for Canadian customer”
  • “Update CSS button class to make buttons rounded”

\7. git push

This will push all your changes to the remote repository. You can think of this as uploading your changes.

After you git push, you will probably (depending on your workflow) have to submit a pull request, get approval, and merge your changes to a master branch. This can all be done in a web browser with a program like GitHub or Bitbucket.

\8. git pull

If you think of git push as uploading your changes, you can think of git pull as downloading everyone else’s changes. Remember: you always pull down (download) before pushing up (upload).

After you have pushed your changes, it’s probably a good idea to hop on the master branch (you do this by running git checkout master) and doing a quick git pull, so you can develop on the most current version of master.

Tip: you can do both of these in one command by running git checkout master && git pull. This will execute both commands in that order.

Workflow Summary:

You now have everything you need to successfully clone a repository, create a branch, make changes, and push those changes up to a master branch. Your workflow should look something like this:

  1. git clone <url> (clone a Git repository)
  2. cd (change directory) into your newly cloned repository
  3. git checkout -b <branch-name> (create and switch to your new branch)
  4. git status (the output of this should be pretty boring right now)
  5. make your changes
  6. git status (you should see a list of the files you changed now)
  7. git diff (make sure you actually want these changes)
  8. git add (add your changes to your staging index)
  9. git status (yes, it’s my favorite command, do it)
  10. git commit (commit your changes)
  11. git push (push your changes up to the remote branch)
  12. merge your changes in Bitbucket or GitHub
  13. git checkout master (switch back to the master branch)
  14. git pull (pull down the changes your just merged)
  15. git status (just to make sure everything is nice and clean)
  16. repeat! (except step 1, you only need to clone once)

Other Helpful Commands:

These won’t make-or-break your workflow, but they will make your life easier.

\9. git checkout -

The git checkout - command lets you switch to the last branch you were on without actually typing the branch name. It’s like the “last” button on your remote control.

Warning: do not confuse git checkout — with git checkout . that would be a terrible mistake

\10. git checkout . and git checkout <file-name>

This can be a bit confusing, because earlier I told you that git checkout -b <branch-name> would create a new branch and switch you to that new branch. The git checkout . command does something very different.

Let’s say you write a lot of code in many different files, and you decide it’s all garbage. The git checkout . command will erase all your work. If you just want to erase all your work in one file, you can use git checkout <file-name>.

Note that these two commands will only revert your unstaged changes. If you run git checkout ., the files in your staging index will be untouched.

\11. git grep "<something you want to find>"

This command is invaluable, git grep has saved my life so many times. It’s most helpful if you are working in a very large codebase. The git grep command is like doing a Google search within your repository. GREP is short for “globally search a regular expression and print.

Image for post

Note: you can run grep without the git in front of it. I don’t recommend doing this unless you specifically want to search all the files that are gitignored in your codebase. It’s slow. It’s painfully slow. It moves like pond water.

Want something even faster? I recommend installing the Silver Searcher. I like the output better than git grep, and you can do convenient things like ignore files you never want to search.

\12. git cherry-pick <sha-value>

This command will pick a commit from another branch and put it onto your current branch. It’s helpful if the changes you are making are dependent on changes in a different branch that haven’t been pushed up to master. It’s also helpful if something goes terribly wrong on your branch, and you need to create a new branch to get out of the dark Git hole you have found yourself in, but you want to keep the changes you have made.

Now is a good time to explain what a SHA value is — I thought about explaining it above, when I introduced the git commit -m "<message>" command, but I went on a rant about imperative mood and commit messages instead.

A SHA (Secure Hash Algorithm) value is generated every time you make a commit. You might also hear it referred to as a checksum or a hash value. It’s just a long string of letters and numbers that is unique to each commit (I’m writing about SHA values like they’re no big deal, but they are actually very cool — if you want to nerd out, you should go read more about SHA values).

If you do git log, you will see a list of all the most recent commits in your repository and their corresponding SHA values. It will look something like this:

@:~/trivia-game <master>$ git log
commit 22b620b516f6157224b6d862e7b625e0f201ebb6 (HEAD -> master)
Author: Patricia Penton
Date:   Fri Sep 29 09:33:22 2017 -0700Create assets directory and index.html

To cherry-pick a commit, you don’t even need the entire SHA value. You can use the first few characters, like so: git cherry-pick 22b620b51 (this will cherry-pick the commit from the example above).

Summary of all commands:

  1. git clone <url>
  2. git status
  3. git diff and git diff --color-words and git diff --staged
  4. git checkout -b <branch-name> and git branch -m <branch-name>
  5. git add <file_name> and git add .
  6. git commit -m "<message>"
  7. git push
  8. git pull
  9. git checkout -
  10. git checkout . and git checkout <file-name>
  11. git grep "<something you want to find>"
  12. git log and git cherry-pick <sha-value>

https://www.codementor.io/@citizen428/git-tutorial-10-common-git-problems-and-how-to-fix-them-aajv0katd

Git Tutorial: 10 Common Git Problems and How to Fix Them

Published Oct 20, 2014Last updated Dec 19, 2018

Learning Git? This Git tutorial covers the 10 most common Git tricks you should know about: how to undo commits, revert commits, edit commit messages, discard local files, resolve merge conflicts, and more.

1. Discard local file modifications

Sometimes the best way to get a feel for a problem is diving in and playing around with the code. Unfortunately, the changes made in the process sometimes turn out to be less than optimal, in which case reverting the file to its original state can be the fastest and easiest solution:

git checkout -- Gemfile # reset specified path 
git checkout -- lib bin # also works with multiple arguments

In case you’re wondering, the double dash (--) is a common way for command line utilities to signify the end of command options.

2. Undo local commits

Alas, sometimes it takes us a bit longer to realize that we are on the wrong track, and by that time one or more changes may already have been committed locally. This is when git reset comes in handy:

git reset HEAD~2        # undo last two commits, keep changes
git reset --hard HEAD~2 # undo last two commits, discard changes  

Be careful with the --hard option! It resets your working tree as well as the index, so all your modifications will be lost for good.

3. Remove a file from git without removing it from your file system

If you are not careful during a git add, you may end up adding files that you didn’t want to commit. However, git rm will remove it from both your staging area, as well as your file system, which may not be what you want. In that case make sure you only remove the staged version, and add the file to your .gitignore to avoid making the same mistake a second time:

git reset filename          # or git remove --cached filename
echo filename >> .gitignore # add it to .gitignore to avoid re-adding it

4. Edit a commit message

Typos happen, but luckily in the case of commit messages, it is very easy to fix them:

git commit --amend                  # start $EDITOR to edit the message
git commit --amend -m "New message" # set the new message directly

But that’s not all git-amend can do for you. Did you forget to add a file? Just add it and amend the previous commit!

git add forgotten_file 
git commit --amend

Please keep in mind that --amend actually will create a new commit which replaces the previous one, so don’t use it for modifying commits which already have been pushed to a central repository. An exception to this rule can be made if you are absolutely sure that no other developer has already checked out the previous version and based their own work on it, in which case a forced push (git push --force) may still be ok. The --force option is necessary here since the tree’s history was locally modified which means the push will be rejected by the remote server since no fast-forward merge is possible.

5. Clean up local commits before pushing

While --amend is very useful, it doesn’t help if the commit you want to reword is not the last one. In that case an interactive rebase comes in handy:

git rebase --interactive 
# if you didn't specify any tracking information for this branch 
# you will have to add upstream and remote branch information: 
git rebase --interactive origin branch

This will open your configured editor and present you with the following menu:

pick 8a20121 Upgrade Ruby version to 2.1.3 
pick 22dcc45 Add some fancy library 
# Rebase fcb7d7c..22dcc45 onto fcb7d7c 
# 
# Commands: # p, pick = use commit 
# r, reword = use commit, but edit the commit message 
# e, edit = use commit, but stop for amending 
# s, squash = use commit, but meld into previous commit 
# f, fixup = like "squash", but discard this commit's log message 
# x, exec = run command (the rest of the line) using shell 
# 
# These lines can be re-ordered; they are executed from top to bottom. 
# 
# If you remove a line here THAT COMMIT WILL BE LOST. 
# 
# However, if you remove everything, the rebase will be aborted. 
#
# Note that empty commits are commented out

On top you’ll see a list of local commits, followed by an explanation of the available commands. Just pick the commit(s) you want to update, change pick to reword (or r for short), and you will be taken to a new view where you can edit the message.

However, as can be seen from the above listing, interactive rebases offer a lot more than simple commit message editing: you can completely remove commits by deleting them from the list, as well as edit, reorder, and squash them. Squashing allows you to merge several commits into one, which is something I like to do on feature branches before pushing them to the remote. No more “Add forgotten file” and “Fix typo” commits recorded for eternity!

6. Reverting pushed commits

Despite the fixes demonstrated in the previous tips, faulty commits do occasionally make it into the central repository. Still this is no reason to despair, since git offers an easy way to revert single or multiple commits:

 git revert c761f5c              # reverts the commit with the specified id
 git revert HEAD^                # reverts the second to last commit
 git revert develop~4..develop~2 # reverts a whole range of commits

In case you don’t want to create additional revert commits but only apply the necessary changes to your working tree, you can use the --no-commit/-n option.

# undo the last commit, but don't create a revert commit 
git revert -n HEAD

The manual page at man 1 git-revert list further options and provides some additional examples.

7. Avoid repeated merge conflicts

As every developer knows, fixing merge conflicts can be tedious, but solving the exact same conflict repeatedly (e.g. in long running feature branches) is outright annoying. If you’ve suffered from this in the past, you’ll be happy to learn about the underused reuse recorded resolution feature. Add it to your global config to enable it for all projects:

git config --global rerere.enabled true

Alternatively you can enable it on a per-project basis by manually creating the directory .git/rr-cache.

This sure isn’t a feature for everyone, but for people who need it, it can be real time saver. Imagine your team is working on various feature branches at the same time. Now you want to merge all of them together into one testable pre-release branch. As expected, there are several merge conflicts, which you resolve. Unfortunately it turns out that one of the branches isn’t quite there yet, so you decide to un-merge it again. Several days (or weeks) later when the branch is finally ready you merge it again, but thanks to the recorded resolutions, you won’t have to resolve the same merge conflicts again.

The man page (man git-rerere) has more information on further use cases and commands (git rerere status, git rerere diff, etc).

8. Find the commit that broke something after a merge

Tracking down the commit that introduced a bug after a big merge can be quite time consuming. Luckily git offers a great binary search facility in the form of git-bisect. First you have to perform the initial setup:

 git bisect start         # starts the bisecting session
 git bisect bad           # marks the current revision as bad
 git bisect good revision # marks the last known good revision

After this git will automatically checkout a revision halfway between the known “good” and “bad” versions. You can now run your specs again and mark the commit as “good” or “bad” accordingly.

git bisect good # or git bisec bad

This process continues until you get to the commit that introduced the bug.

 

9. Avoid common mistakes with git hooks

Some mistakes happen repeatedly, but would be easy to avoid by running certain checks or cleanup tasks at a defined stage of the git workflow. This is exactly the scenario that hooks were designed for. To create a new hook, add an executable file to .git/hooks. The name of the script has to correspond to one of the available hooks, a full list of which is available in the manual page (man githooks). You can also define global hooks to use in all your projects by creating a template directory that git will use when initializing a new repository (see man git-init for further information). Here’s how the relevant entry in ~/.gitconfig and an example template directory look like:

[init]
    templatedir = ~/.git_template
  
  → tree .git_template
  .git_template
  └── hooks
      └── pre-commit

When you initialize a new repository, files in the template directory will be copied to the corresponding location in your project’s .git directory.

What follows is a slightly contrived example commit-msg hook, which will ensure that every commit message references a ticket number like “#123“.

ruby
  #!/usr/bin/env ruby
  message = File.read(ARGV[0])

  unless message =~ /\s*#\d+/
    puts "[POLICY] Your message did not reference a ticket."
    exit 1
  end

10. When all else fails

So far we covered quite a lot of ground on how to fix common errors when working with git. Most of them have easy enough solutions, however there are times when one has to get out the big guns and rewrite the history of an entire branch. One common use case for this is removing sensitive data (e.g. login credentials for production systems) that were committed to a public repository:

git filter-branch --force --index-filter \
'git rm --cached --ignore-unmatch secrets.txt' \
--prune-empty --tag-name-filter cat -- --all

This will remove the file secrets.txt from every branch and tag. It will also remove any commits that would be empty as a result of the above operation. Keep in mind that this will rewrite your project’s entire history, which can be very disruptive in a distributed workflow. Also while the file in question has now been removed, the credentials it contained should still be considered compromised!

GitHub has a very good tutorial on removing sensitive data and man git-filter-branch has all details on the various available filters and their options.

 

Git - Why a fresh clone is not showing you most current version

https://stackoverflow.com/questions/15376241/why-does-git-say-my-master-branch-is-already-up-to-date-even-though-it-is-not/15381342

I think your basic issue here is that you're misinterpreting and/or misunderstanding what git does and why it does it.

When you clone some other repository, git makes a copy of whatever is "over there". It also takes "their" branch labels, such as master, and makes a copy of that label whose "full name" in your git tree is (normally) remotes/origin/master (but in your case, remotes/upstream/master). Most of the time you get to omit the remotes/ part too, so you can refer to that original copy as upstream/master.

If you now make and commit some change(s) to some file(s), you're the only one with those changes. Meanwhile other people may use the original repository (from which you made your clone) to make other clones and change those clones. They are the only ones with their changes, of course. Eventually though, someone may have changes they send back to the original owner (via "push" or patches or whatever).

The git pull command is mostly just shorthand for git fetch followed by git merge. This is important because it means you need to understand what those two operations actually do.

The git fetch command says to go back to wherever you cloned from (or have otherwise set up as a place to fetch from) and find "new stuff someone else added or changed or removed". Those changes are copied over and applied to your copy of what you got from them earlier. They are not applied to your own work, only to theirs.

The git merge command is more complicated and is where you are going awry. What it does, oversimplified a bit, is compare "what you changed in your copy" to "changes you fetched from someone-else and thus got added to your-copy-of-the-someone-else's-work". If your changes and their changes don't seem to conflict, the merge operation mushes them together and gives you a "merge commit" that ties your development and their development together (though there is a very common "easy" case in which you have no changes and you get a "fast forward").

The situation you're encountering now is one in which you have made changes and committed them—nine times, in fact, hence the "ahead 9"—and they have made no changes. So, fetch dutifully fetches nothing, and then merge takes their lack-of-changes and also does nothing.

What you want is to look at, or maybe even "reset" to, "their" version of the code.

If you merely want to look at it, you can simply check out that version:

git checkout upstream/master

That tells git that you want to move the current directory to the branch whose full name is actually remotes/upstream/master. You'll see their code as of the last time you ran git fetch and got their latest code.

If you want to abandon all your own changes, what you need to do is change git's idea of which revision your label, master, should name. Currently it names your most recent commit. If you get back onto that branch:

git checkout master

then the git reset command will allow you to "move the label", as it were. The only remaining problem (assuming you're really ready to abandon everything you've don) is finding where the label should point.

git log will let you find the numeric names—those things like 7cfcb29—which are permanent (never changing) names, and there are a ridiculous number of other ways to name them, but in this case you just want the name upstream/master.

To move the label, wiping out your own changes (any that you have committed are actually recoverable for quite a while but it's a lot harder after this so be very sure):

git reset --hard upstream/master

The --hard tells git to wipe out what you have been doing, move the current branch label, and then check out the given commit.

It's not super-common to really want to git reset --hard and wipe out a bunch of work. A safer method (making it a lot easier to recover that work if you decide some of it was worthwhile after all) is to rename your existing branch:

git branch -m master bunchofhacks

and then make a new local branch named master that "tracks" (I don't really like this term as I think it confuses people but that's the git term 🙂 ) the origin (or upstream) master:

git branch -t master upstream/master

which you can then get yourself on with:

git checkout master

What the last three commands do (there's shortcuts to make it just two commands) is to change the name pasted on the existing label, then make a new label, then switch to it:

before doing anything:

C0 -    "remotes/upstream/master"
    \
     \- C1 --- C2 --- C3 --- C4 --- C5 --- C6 --- C7 --- C8 --- C9    "master"

after git branch -m:

C0 -    "remotes/upstream/master"
    \
     \- C1 --- C2 --- C3 --- C4 --- C5 --- C6 --- C7 --- C8 --- C9    "bunchofhacks"

after git branch -t master upstream/master:

C0 -    "remotes/upstream/master", "master"
    \
     \- C1 --- C2 --- C3 --- C4 --- C5 --- C6 --- C7 --- C8 --- C9    "bunchofhacks"

Here C0 is the latest commit (a complete source tree) that you got when you first did your git clone. C1 through C9 are your commits.

Note that if you were to git checkout bunchofhacks and then git reset --hard HEAD^^, this would change the last picture to:

C0 -    "remotes/upstream/master", "master"
    \
     \- C1 --- C2 --- C3 --- C4 --- C5 --- C6 --- C7 -    "bunchofhacks"
                                                      \
                                                       \- C8 --- C9

The reason is that HEAD^^ names the revision two up from the head of the current branch (which just before the reset would be bunchofhacks), and reset --hard then moves the label. Commits C8 and C9 are now mostly invisible (you can use things like the reflog and git fsck to find them but it's no longer trivial). Your labels are yours to move however you like. The fetch command takes care of the ones that start with remotes/. It's conventional to match "yours" with "theirs" (so if they have a remotes/origin/mauve you'd name yours mauve too), but you can type in "theirs" whenever you want to name/see commits you got "from them". (Remember that "one commit" is an entire source tree. You can pick out one specific file from one commit, with git show for instance, if and when you want that.)

N Behind 1A

If your branch is behind by master then do:

git checkout master (you are switching your branch to master)
git pull 
git checkout yourBranch (switch back to your branch)
git merge master

After merging it, check if there is a conflict or not.
If there is NO CONFLICT then:

git push

If there is a conflict then fix your file(s), then:

git add yourFile(s)
git commit -m 'updating my branch'
git push

 

N Behind 1

https://stackoverflow.com/questions/34118404/what-i-can-do-to-resolve-1-commit-behind-master

Before you begin, if you are uncomfortable with a command line, you can do all the following steps using SourceTree, GitExtension, GitHub Desktop, or your favorite tool.

To solve the issue, you might have two scenarios:

1) Fix only remote repository branch which is behind commit

Example: Both branches are on the remote side

ahead === Master branch

behind === Develop branch

Solution:

  1. Clone the repository to the local workspace: this will give you the Master branch which is ahead with commit

    git clone repositoryUrl
    
  2. Create a branch with Develop name and checkout to that branch locally

    git checkout -b DevelopBranchName // this command creates and checkout the branch
    
  3. Pull from the remote Develop branch. Conflict might occur. if so, fix the conflict and commit the changes.

     git pull origin DevelopBranchName
    
  4. Merge the local Develop branch with the remote Develop branch

      git merge origin develop
    
  5. Push the merged branch to the remote Develop branch

      git push origin develop
    

2) Local Master branch is behind the remote Master branch

This means every locally created branch is behind.

Before preceding, you have to commit or stash all the changes you made on the branch that is behind commits.

Solution:

  1. Checkout your local Master branch

    git checkout master
    
  2. Pull from remote Master branch

    git pull origin master
    

Now your local Master is in sync with the remote Branch but other local branches, that branched from the local Master branch, are not in sync with your local Master branch because of the above command. To fix that:

  1. Checkout the branch that is behind your local Master branch

    git checkout BranchNameBehindCommit
    
  2. Merge with the local Master branch

    git merge master  // Now your branch is in sync with local Master branch
    

If this branch is on the remote repository, you have to push your changes

    git push origin branchBehindCommit

https://clickety-clack.click/img/20433867.html

This branch is commits ahead, commits behind master.

GitHub keeps saying "This branch is X commits ahead, Y commits , As you guessed, these extra commits are likely the merge commits from the Pull Requests that you created. In the future, there's a much easier The problem comes now, in my GitHub account now it's always saying 'This branch is X commits ahead', where 'X' is the number of times that I did the synchronize process I described above. So, every time I do a pull request into the original repository (not my fork), is showing that I'm committing my code plus X more commits, that are the merges

Git how to solve This branch is X commits ahead, X commits behind , As with most things in git you a have a couple options. Merge master into your dev branch git fetch origin master git checkout dev git merge origin/master git git status message: Your branch is ahead of ‘origin/master’ by X commits These git “Your branch is ahead of origin/master ” and “ nothing to commit ” messages can be misleading, especially to new git users (like myself). The thing to know here is that your branch isn’t ahead of the the master — your branch is the master.

What I can do to resolve "1 commit behind master"?, 1) Fix only remote repository branch which is behind commit. Example: Both branches are on the remote side. ahead === Master branch. 1. in your local master branch (or other branch that went wrong) 2. git rebase -i (the commit id should be the last id before the "base" id you want to rebase to) 3. squash or drop the redundant commits, leave only the first commit maybe (the first commit should be the base id you like to rebase to) 4. wq save and apply this rebase

Git rev-list

rev-list is a very essential Git command, since it provides the ability to build and traverse commit ancestry graphs. For this reason, it has a lot of different options that enables it to be used by commands as different as git bisect and git repack.

rev-list walks backwards through history, including or excluding commits based on whether --full-history and/or parent rewriting (via --parents or --children) are used. The following settings are available.

Git rev-list will list commits in one branch that are not in another branch. It is a great tool when you're trying to figure out if code has been merged into a branch or not. Using the --oneline option will display the title of each commit. The ^ operator excludes commits in the specified branch from the list.

Github this branch is behind master

Branch is behind master, (assuming your local is in sync with origin i.e. you've run git fetch already):. git checkout mybranch. git branch This branch is 4 commits behind OtherOne:master. How do I fix things (purely via the github page) to get things to a state where my repo is not showing as being behind theirs? If I do a Compare in my repo it says: There isn’t anything to compare. OtherOne:master is up to date with all commits from MyOne:master.

In GitHub, how do I resolve the issue 'This branch is n commits , It means your copy of the remote master branch (typically denoted as Sign In. In GitHub, how do I resolve the issue "This branch is n commits behind master"? I am fully authenticated, have full rights and (as demonstrated with the log below) the master branch is fully up to date. Stephans-MacBook-Pro:project-name stephan$ git fetch Stephans-MacBook-Pro:project-name stephan$ git status On branch master Your branch is up to date with 'origin/master'.

Only some repos say: Your branch is behind master : git, git status On branch master Your branch is behind 'origin/master' by 2 commits, and can be fast-forwarded. (use "git pull" to update your local branch) nothing to GitHub will drop the term "master" as the default branch name from its hosted repositories in response to protests about ingrained racism. Activists in the software community have long campaigned to replace the terms “master” and “slave” with terms that don't invoke actual human slavery.

Git branch behind and ahead of master

Git: Ahead and Behind together. How to solve?, git pull (or rather, the git merge part that pull does) will "solve" both 'ahead' and 'behind'. branch is X commits behind means that there are X new (unmerged) After doing a git fetch, you can run git status to show how many commits the local branch is ahead or behind of the remote version of the branch. This won't show you how many commits it is ahead or behind of a different branch though.

git ahead/behind info between master and branch?, Here's a trick I found to compare two branches and show how many commits each branch is ahead of the other (a more general answer on your The thing to know here is that your branch isn’t ahead of the the master — your branch is the master. What the git message is saying is that you’re ahead of “origin/master,” which is usually the branch on your remote git origin server. (You most likely did a git clone to get your git repo from the origin server.)

Git Tricks: Keeping branches even | by Daniel Zanzini, In one of our projects, we use git with 3 main branches: master The commits from the ahead branch are just put after the last commit of the target branch. have any different commits from master and is 3 commits behind. show git ahead and behind info for branches vs origin/master - git-branches-vs-origin-master

Your branch is ahead of 'origin/master' by 1 commit.

git - Your branch is ahead of 'origin/master' by 1 commit, The message you're seeing (your branch is ahead by 1 commit) means that your local repository has one commit that hasn't been pushed yet. In other words: add and commit are local operations, push , pull and fetch are operations that interact with a remote. The message you're seeing (your branch is ahead by 1 commit) means that your local repository has one commit that hasn't been pushed yet. In other words: add and commit are local operations, push, pull and fetch are operations that interact with a remote.

git status message, These git “Your branch is ahead of origin/master” and “nothing to commit” messages can be misleading, especially to new git users (like myself). When the status says Your branch is ahead of 'origin/master' by 1 commit, it actually does mean origin/master. That is, there is pointer named origin/master in your repo pointing to the commit which is the HEAD of that remote branch, and your master is ahead of this commit.

git - Your branch is ahead of 'origin/master' by 1 commit, You cannot push anything that hasn't been committed yet. The order of operations is: Make your change. git add - this stages the changes in It seems you're still in dev branch and message just sais that your current status (in dev branch) is ahead of master by one commit. Without any more information, grom my point of view, that's correct because your commit hasn't been performed in origin/master but in "dev" branch, so your branch is ahead as the message sais.

Github this branch is 2 commits ahead of master

GitHub keeps saying "This branch is X commits ahead, Y commits , As you guessed, these extra commits are likely the merge commits from the Pull Requests that you created. In the future, there's a much easier The problem comes now, in my GitHub account now it's always saying 'This branch is X commits ahead', where 'X' is the number of times that I did the synchronize process I described above. So, every time I do a pull request into the original repository (not my fork), is showing that I'm committing my code plus X more commits, that are the merges

Fix the thing GitHub keeps saying “This branch is X commits ahead , 1. in your local master branch (or other branch that went wrong). 2. git rebase -i (the commit id should be the last id before the "base" id you want to Then when I do a git status it tells me that my branch is ahead by X commits (presumably the same number of commits that I have made). My experience is in a team environment with many branches. We work in our own feature branches (in local clones) and it was one of those that git status showed I was 11 commits ahead.

In GitHub, how do I resolve the issue 'This branch is n commits , You can resolve this, while you have master checked out, by typing: [code][/code]git In GitHub, how do I resolve the issue "This branch is n commits behind master"? Answered January 2, 2018 · Author has 817 answers and 282.4K answer views. These git “Your branch is ahead of origin/master ” and “ nothing to commit ” messages can be misleading, especially to new git users (like myself). The thing to know here is that your branch isn’t ahead of the the master — your branch is the master.

Your branch is ahead of origin master by 52 commits

Take remote branch changes and replace with their changes if conflict arise. Here if you do git status you will get something like this your branch is ahead of 'origin/master' by 3 commits. Step 3: git reset --hard origin/<branch_name> Step 4: git fetch. Hard reset your branch. Enjoy.

git status message: Your branch is ahead of ‘origin/master’ by X commits. These git “Your branch is ahead of origin/master” and “nothing to commit” messages can be misleading, especially to new git users (like myself). The thing to know here is that your branch isn’t ahead of the the master — your branch is the master. What the

EDIT: What this is saying is that your local master branch is ahead of your local copy of the remote master branch – origin/master – which you’ve just pulled down. EDIT: Your local master branch must have new commits which you had not pushed to origin. The thing is – I was being too clever and trying to avoid pulling and updating master.

Your branch is ahead of 'origin/master' by 2 commits

Your branch is ahead of 'origin/master' by 3 commits, You get that message because you made changes in your local master and you didn't push them to remote. You have several ways to "solve" it Take remote branch changes and replace with their changes if conflict arise. Here if you do git status you will get something like this your branch is ahead of 'origin/master' by 3 commits. Step 3: git reset --hard origin/<branch_name> Step 4: git fetch. Hard reset your branch. Enjoy.

git: Your branch is ahead by X commits, The --rebase option means that git will move your local commit aside, synchronise with the Step 2 : git pull -s recursive -X theirs It's ahead of origin/master , which is a remote tracking branch that records the status of the These git “Your branch is ahead of origin/master ” and “ nothing to commit ” messages can be misleading, especially to new git users (like myself). The thing to know here is that your branch isn’t ahead of the the master — your branch is the master.

git status message, These git “Your branch is ahead of origin/master” and “nothing to commit” messages can be misleading, especially to new git users (like myself). EDIT: What this is saying is that your local master branch is ahead of your local copy of the remote master branch – origin/master – which you’ve just pulled down. EDIT: Your local master branch must have new commits which you had not pushed to origin. The thing is – I was being too clever and trying to avoid pulling and updating master.

Git your branch is ahead of by 4 commits

git: Your branch is ahead by X commits , It's ahead of origin/master , which is a remote tracking branch that records the status of the remote repository from your last push , pull , or fetch . It's telling you exactly what you did; you got ahead of the remote and it's reminding you to push. If you remove the fetch line from your project's . Then when I do a git status it tells me that my branch is ahead by X commits (presumably the same number of commits that I have made). My experience is in a team environment with many branches. We work in our own feature branches (in local clones) and it was one of those that git status showed I was 11 commits ahead.

Your branch is ahead of 'origin/master' by 3 commits, Use these 4 simple commands. Step 1 : git checkout <branch_name>. This is obvious to go into that branch. Step 2 : git pull - git status message: Your branch is ahead of ‘origin/master’ by X commits. These git “Your branch is ahead of origin/master” and “nothing to commit” messages can be misleading, especially to new git users (like myself). The thing to know here is that your branch isn’t ahead of the the master — your branch is the master.

Meaning of Github Ahead/Behind Metrics, number tells you roughly how much impact the branch will have on the base branch should it be merged. $ git status it says everything is up-to-date – but you get the horrible ‘Your branch is ahead of ‘origin/master’ by x commits’ message – WTF! EDIT: What this is saying is that your local master branch is ahead of your local copy of the remote master branch – origin/master – which you’ve just pulled down.

Error processing SSI file

Git HEAD is ahead of master

Why is HEAD ahead of master?, Calling git branch -a reveals that I am detached from 16e6202(master). Can someone explain what this means? * e3acad6 (HEAD, origin/master) 14-delete task Take remote branch changes and replace with their changes if conflict arise. Here if you do git status you will get something like this your branch is ahead of 'origin/master' by 3 commits. Step 3: git reset --hard origin/<branch_name> Step 4: git fetch. Hard reset your branch. Enjoy.

git status message, git status FAQ: When I issue the git status command, I see the following “Your branch is ahead or origin/master ” message: # On branch git status message: Your branch is ahead of ‘origin/master’ by X commits These git “Your branch is ahead of origin/master ” and “ nothing to commit ” messages can be misleading, especially to new git users (like myself). The thing to know here is that your branch isn’t ahead of the the master — your branch is the master.

HEAD is way ahead master, Don´t know if it is an Off-Topic, but I need help with Git. My HEAD is way ahead of master. HEAD has the right code and MASTER don´t. The simple answer to the simple question of how to un-commit is git reset HEAD^ – Anonymoose Apr 16 '12 at 6:03 i did reset HEAD. but then when I try to push, then it says me D file1.py when I tried to psuh then again it says me that your branch is ahead of origin/master by 1 commit – sam Apr 16 '12 at 6:05

Error processing SSI file

Github branch is ahead and behind

Meaning of Github Ahead/Behind Metrics, git pull (or rather, the git merge part that pull does) will "solve" both 'ahead' and 'behind'. branch is X commits behind means that there are X new (unmerged) The problem comes now, in my GitHub account now it's always saying 'This branch is X commits ahead', where 'X' is the number of times that I did the synchronize process I described above. So, every time I do a pull request into the original repository (not my fork), is showing that I'm committing my code plus X more commits, that are the merges

Git: Ahead and Behind together. How to solve?, I have created a branch for testing in my local repo ( test-branch ) which I pushed to Github . If I go to my Github account and select this test- On a github project you can go to a /branches page and se pretty graphs like this one that for each branch show how far behind and how far ahead each branch is with respect to master. Is there a command line tool that does something similar? Something that works with remotes as well?

git ahead/behind info between master and branch?, GitHub keeps saying "This branch is X commits ahead, Y commits behind" · git github. I know there are several similar questions, but I think my Show how many commits each branch is ahead or behind its upstream. - git-branch-status

Error processing SSI file

GitHub commits ahead of master

GitHub keeps saying "This branch is X commits ahead, Y commits , git remote add upstream https://github.com/upstream/repo.git If you never commit directly to master , then you can sync without the --rebase or git checkout master git reset --hard upstream/master If you have created any commits in your fork, you can cherry-pick them onto your updated version of master. If you can't remember or need help finding them, something like. git log --oneline master origin/master should show you any commits not in upstream.

Fix the thing GitHub keeps saying “This branch is X commits ahead , Fix the thing GitHub keeps saying “This branch is X commits ahead, 2. git pull --rebase upstream master 3. git push --force-with-lease origin master. What the git message is saying is that you’re ahead of “origin/master,” which is usually the branch on your remote git origin server. (You most likely did a git clone to get your git repo from the origin server.) This message is telling you that you’ve made some changes locally, and you’re now ahead of the origin server.

Syncing a fork leaves me one commit ahead of upstream/master , I have followed the instructions in https://help.github.com/articles/syncing-a-fork/ however my repository ends up being one commit ahead of the upstream/master This output means: "Compared to master, test-branch is 7 commits ahead and 1 commit behind." You can also compare local branches with remote branches, e.g. origin/mastermaster to find out how many commits the local master branch is ahead/behind its remote counterpart.

Error processing SSI file

Hot Articles


Scroll to Top