743
Comment:
|
← Revision 17 as of 2022-02-14 03:19:33 ⇥
3315
|
Deletions are marked like this. | Additions are marked like this. |
Line 4: | Line 4: |
* Linux distributed version controll. | * [[Git/Squash]] * Linux distributed version control. |
Line 7: | Line 8: |
* [[Git/Tags]] | |
Line 8: | Line 10: |
* Setup new repo 1. Log into server with git account 1. Create repo with $ git init --bare repository * --bare can't be used $ .ssh/config: |
== How to setup GIT private server == 1. Log into server, create git account, set it to use git-shell (no login), add .ssh/authorized keys for access with no password. 1. Create repo with $ '''git init --bare repository''' 1. On client edit * --bare can't be used * Setup .ssh/config, see example if using port, and can even use specific port. |
Line 18: | Line 22: |
1. On client edit 1. On client pc clone with $ git clone git@hostname:21:repository |
1. On client pc clone with $ '''git clone githost:repository''' |
Line 21: | Line 24: |
1. git commit -a # Commit all changes to the local version of the repository 1. git push origin master # Push changes to the server's version of the repository |
1. '''git commit -a''' # Commit all changes to the local version of the repository 1. '''git push origin master''' # Push changes to the server's version of the repository == Nice Git prompt in Linux bash == * https://github.com/magicmonty/bash-git-prompt == Git submodule == * Home dir add code as seperate submodule git 1. on server # sudo -u git git init --bare !NewRepo 2. on pc code$ git submodule add git@git.server:!NewRepo === Submodule, with github.com https token === 1. In github.com, under usersettings -> developer -> generate token to be uses in place of pwd. * then with token=<thetoken> {{{ git submodule add https://my2022token:<thetoken>@https://github.com/<user>/<gitrepo>.git }}} == Cleanup local branches already merged into Master == 1. Check what has not been merged with {{{ git branch --no-merged }}} 2. Delete branch {{{ git branch -d xxx }}} *. All in one {{{ git branch --merged master | grep -v "\* master" | xargs -n 1 git branch -d }}} |
Line 25: | Line 46: |
== Manage homedir on new server from existing git repo == * Setup repo, with no-checkout {{{ git clone --depth 2 --no-checkout repo-to-clone gittemp mv gittemp/.git ~ rmdir gittemp }}} * Create a branch to keep current files local {{{ git branch original_201802 git checkout original_201802 git add . git commit }}} * switch back to main branch {{{ git checkout dev }}} * Merge original file back into dev if required. {{{ git merge original-201802 }}} == Working with github and upstream git repos == * View with $ git remote show {{{ $ git remote show origin upstream }}} * normally origin should point to your repo, clone possibly of upstream project e.g. {{{ $ git remote show upstream * remote upstream Fetch URL: git@github.com:boltgolt/howdy.git Push URL: git@github.com:boltgolt/howdy.git }}} * To sync latest upstream changes, merge into local master and possibly push back up to your origin e.g. {{{ git pull upstream git merge upstream/master ##Commit message git push }}} ==== Create branch based on upstream but pushed to my forked origin ==== * working on github, want to create branch in my forked origin, but based of upstream/master for a fix i want to push/merge to upstream. {{{ $ git remote origin upstream $ git fetch --all --tag Fetching origin Fetching upstream $ checkout -b fix#733-myBranch $ git reset --hard upstream/master $ git push --set-upstream origin fix#733-myBranch }}} |
Git
- Linux distributed version control.
- Notes on using and setting up on Ubuntu.
How to setup GIT private server
- Log into server, create git account, set it to use git-shell (no login), add .ssh/authorized keys for access with no password.
Create repo with $ git init --bare repository
1. On client edit
- --bare can't be used
- Setup .ssh/config, see example if using port, and can even use specific port.
Host githost HostName git.host.de Port 4019 User git
On client pc clone with $ git clone githost:repository
- #(edit some files
git commit -a # Commit all changes to the local version of the repository
git push origin master # Push changes to the server's version of the repository
Nice Git prompt in Linux bash
Git submodule
- Home dir add code as seperate submodule git
on server # sudo -u git git init --bare NewRepo
on pc code$ git submodule add git@git.server:NewRepo
Submodule, with github.com https token
In github.com, under usersettings -> developer -> generate token to be uses in place of pwd.
then with token=<thetoken>
git submodule add https://my2022token:<thetoken>@https://github.com/<user>/<gitrepo>.git
Cleanup local branches already merged into Master
Check what has not been merged with git branch --no-merged
Delete branch git branch -d xxx
. All in one git branch --merged master | grep -v "\* master" | xargs -n 1 git branch -d
Manage homedir on new server from existing git repo
Setup repo, with no-checkout
git clone --depth 2 --no-checkout repo-to-clone gittemp mv gittemp/.git ~ rmdir gittemp
- Create a branch to keep current files local
git branch original_201802 git checkout original_201802 git add . git commit
switch back to main branch
git checkout dev
Merge original file back into dev if required.
git merge original-201802
Working with github and upstream git repos
View with $ git remote show
$ git remote show origin upstream
normally origin should point to your repo, clone possibly of upstream project e.g.
$ git remote show upstream * remote upstream Fetch URL: git@github.com:boltgolt/howdy.git Push URL: git@github.com:boltgolt/howdy.git
To sync latest upstream changes, merge into local master and possibly push back up to your origin e.g.
git pull upstream git merge upstream/master ##Commit message git push
Create branch based on upstream but pushed to my forked origin
- working on github, want to create branch in my forked origin, but based of upstream/master for a fix i want to push/merge to upstream.
$ git remote origin upstream $ git fetch --all --tag Fetching origin Fetching upstream $ checkout -b fix#733-myBranch $ git reset --hard upstream/master $ git push --set-upstream origin fix#733-myBranch
...