Git: Difference between revisions
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
=== TASKS === | |||
{| class="mw-collapsible mw-collapsed wikitable" | |||
! git create new branch on server, pull to client | |||
|- | |||
| | |||
# ON CENTRAL SERVER | |||
git checkout master # as needed; we are assuming that master is clean enough as a starting point | |||
git checkout -b mynewbranchy | |||
# HOWEVER, use this instead if you need a new "clean" repo and even master is dirty... | |||
# You need the rm because git "leaves your working folder intact". | |||
git checkout --orphan mynewbranchy | |||
git rm -rf . | |||
# ON CLIENT | |||
git pull | |||
git checkout -b mynewbranchy origin/mynewbranchy | |||
# if files are in the way from the previously checked-out branch, you can force it... | |||
git checkout -f -b mynewbranchy origin/mynewbranchy | |||
|} | |||
{| class="mw-collapsible mw-collapsed wikitable" | |||
! git pull when untracked files are in the way | |||
|- | |||
| This will pull, forcing untracked files to be overwritten by newly tracked ones in the repo: | |||
git fetch --all | |||
git reset --hard origin/mymatchingbranch | |||
|} | |||
{| class="mw-collapsible mw-collapsed wikitable" | |||
! git create new branch when untracked files are in the way | |||
|- | |||
| | |||
git checkout -b bj143 origin/bj143 | |||
git : error: The following untracked working tree files would be overwritten by checkout: | |||
(etc) | |||
TOTAL PURGE FIX (too much): | |||
git clean -d -fn "" | |||
-d dirs too | |||
-f force, required | |||
-x include ignored files (don't use this) | |||
-n dry run | |||
BEST FIX (just overwrite what is in the way): | |||
git checkout -f -b bj143 origin/bj143 | |||
|} | |||
{| class="mw-collapsible mw-collapsed wikitable" | |||
! git recreate repo | |||
|- | |||
| | |||
git clone ssh://m@thedigitalmachine.com/home/m/development/thedigitalage/ampache-with-hangthedj-module | |||
cd ampache-with-hangthedj-module | |||
git checkout -b daily_grind origin/daily_grind | |||
If you already have the daily_grind branches and just need to connect them: | |||
git branch -u origin/daily_grind daily_grind | |||
|} | |||
{| class="mw-collapsible mw-collapsed wikitable" | |||
! git connect to origin after the fact | |||
|- | |||
| | |||
git remote add origin ssh:// m@bitpost.com/home/m/development/logs | |||
git fetch | |||
From ssh:// bitpost/home/m/development/logs | |||
* [new branch] daily_grind -> origin/daily_grind | |||
* [new branch] master -> origin/master | |||
git branch -u origin/daily_grind daily_grind | |||
git checkout master | |||
git branch -u origin/master master | |||
|} | |||
{| class="mw-collapsible mw-collapsed wikitable" | |||
! git multiple upstreams | |||
|- | |||
| Use this to cause AUTOMATIC push/pull to a second origin: | |||
git remote set-url origin --push --add user1@repo1 | |||
git remote set-url origin --push --add user2@repo2 | |||
git remote -v show | |||
Leave out --push if you want to pull as well... but I'd be careful, it's better if code is changed in one client with this config, and then pushed to the multiple origins from there. Otherwise, things are GOING TO GET SYNCY-STINKY. | |||
|} | |||
=== CONFIGURATION === | |||
{| class="mw-collapsible mw-collapsed wikitable" | {| class="mw-collapsible mw-collapsed wikitable" | ||
! git convert to a bare repo | ! git convert to a bare repo | ||
Line 15: | Line 95: | ||
git clone repo.git # (optional, if you want a live repo on the server where you have the bare repo) | git clone repo.git # (optional, if you want a live repo on the server where you have the bare repo) | ||
Then you can clean up old branches like daily and daily_grind, as needed. | Then you can clean up old branches like daily and daily_grind, as needed. | ||
|} | |||
git merge --strategy-option theirs | |||
{| class="mw-collapsible mw-collapsed wikitable" | |||
! git create merge-to command | |||
|- | |||
| Add this handy alias command to all git repos' .config file... | |||
[alias] | |||
merge-to = "!gitmergeto() { export tmp_branch=`git branch | grep '* ' | tr -d '* '` && git checkout $1 && git merge $tmp_branch && git checkout $tmp_branch; unset tmp_branch; }; gitmergeto" | |||
|} | |} | ||
{| class="mw-collapsible mw-collapsed wikitable" | {| class="mw-collapsible mw-collapsed wikitable" | ||
Line 73: | Line 163: | ||
[merge] | [merge] | ||
tool = kdiff3 | tool = kdiff3 | ||
|} | |} | ||
{| class="mw-collapsible mw-collapsed wikitable" | {| class="mw-collapsible mw-collapsed wikitable" | ||
Line 109: | Line 170: | ||
git config --global core.editor "'C:/Program Files (x86)/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin" | git config --global core.editor "'C:/Program Files (x86)/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin" | ||
|} | |} | ||
{| class="mw-collapsible mw-collapsed wikitable" | {| class="mw-collapsible mw-collapsed wikitable" | ||
! git fix push behavior - ONLY PUSH CURRENT doh | ! git fix push behavior - ONLY PUSH CURRENT doh | ||
Line 142: | Line 177: | ||
|} | |} | ||
* [[Track your changes to an open-source project with git]] | * [[Track your changes to an open-source project with git]] |
Revision as of 13:25, 13 April 2016
TASKS
Expandgit create new branch on server, pull to client |
---|
Expandgit pull when untracked files are in the way |
---|
Expandgit create new branch when untracked files are in the way |
---|
Expandgit recreate repo |
---|
Expandgit connect to origin after the fact |
---|
Expandgit multiple upstreams |
---|
CONFIGURATION
Expandgit convert to a bare repo |
---|
git merge --strategy-option theirs
Expandgit create merge-to command |
---|
Expandgit fix github diverge from local bare repo following README.md edit |
---|
Expandgit use kdiff3 as difftool and mergetool |
---|
Expandgit windows configure notepad++ editor |
---|
Expandgit fix push behavior - ONLY PUSH CURRENT doh |
---|
From here...