User Tools

Site Tools


todo-git

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
todo-git [2014/06/01 01:27] dblumetodo-git [2021/11/14 00:23] – [Updating a local repo after remote's already renamed its branch] dblume
Line 43: Line 43:
 ===== When it's time to commit ===== ===== When it's time to commit =====
  
-Check which files are staged for commit with ''git status'' Then, when you're ready to commit locally,+**1.** Check which files are staged for commit
 + 
 +<code> 
 +git status 
 +</code> 
 + 
 +**2.** Then, when you're ready to commit locally,
  
 <code> <code>
Line 49: Line 55:
 </code> </code>
  
-When you're ready to push a local commit to a remote one...+**3.** When you're ready to push a local commit to a remote one... 
 + 
 +<code> 
 +git push -u origin master 
 +</code> 
 + 
 +or
  
 <code> <code>
Line 67: Line 79:
 git push -u origin master git push -u origin master
 </code> </code>
 +
 +===== Creating a new remote repository from an existing local one =====
 +
 +I created wine-tasting at [[https://github.com/new]].  Then, to create a new repository on the command line at the local computer:
 +
 +<code>
 +~$ mkdir wine-tasting
 +~$ cd wine-tasting/
 +wine-tasting$ vim README.md
 +wine-tasting$ vim LICENSE.txt
 +wine-tasting$ git init
 +wine-tasting$ git add README.md
 +wine-tasting$ git add LICENSE.txt
 +wine-tasting$ git add test.py
 +wine-tasting$ git add wine_allocator.py
 +wine-tasting$ git commit -m "first commit"
 +wine-tasting$ git remote add origin https://github.com/dblume/wine-tasting.git
 +wine-tasting$ git push -u origin master
 +</code>
 +
 +====== Renaming branches ======
 +
 +===== Updating both local and remote repos =====
 +
 +To rename a remote branch:
 +
 +  - Rename the local one.
 +  - Push the deletion of the old name.
 +  - Push the new name.
 +  - git remote prune origin
 +
 +When someone else renamed a remote branch:
 +
 +<code bash>
 +$ git fetch --all  # TODO investigate why fetch
 +$ git remote prune origin  # (where origin is the name of the shared repo)
 +</code>
 +
 +
 +==== Creating a branch (and possibly pushing to upstream origin) ====
 +
 +  $ git checkout -b new_branch
 +  Switched to a new branch 'new_branch'
 +
 +That was the same as "''git branch new_branch; git checkout new_branch''"
 +
 +And now if you want to create that branch name at the remote branch, then:
 +
 +  $ git push --set-upstream origin new_branch
 +
 +==== Changing a local branch to a new remote branch ====
 +
 +This'll work if you don't have a local branch with that name already.
 +
 +<code>
 +$ git checkout --track origin/branch_name
 +</code>
 +
 +==== Making the current local branch track a new remote branch ====
 +
 +<code>
 +$ git branch -u origin/branch_name
 +</code>
 +
 +===== Updating a local repo after remote's already renamed its branch =====
 +
 +<code bash>
 +git branch -m master main
 +git fetch --all --prune
 +git branch -u origin/main main
 +git remote set-head origin -a
 +</code>
 +
 +====== git at dlma.com ======
 +
 +I created a remote git repo at dlma like so:
 +
 +At the server:
 +
 +<code bash>
 +git$ mkdir testcode.git
 +git$ cd testcode.git/
 +testcode.git$ git init --bare
 +</code>
 +
 +Then, at the local computer:
 +
 +<code bash>
 +testcode$ git init
 +Initialized empty Git repository in /home/David/testcode/.git/
 +testcode$ git add .
 +testcode$ git commit -m "first commit"
 +...
 +testcode$ git remote add origin ssh://USERNAME@dlma.com/~/git/testcode.git
 +testcode$ git push origin master
 +</code>
 +
 +I could've use gitweb but I used GitHub-like [[https://github.com/klaussilveira/gitlist|gitlist]] at http://git.dlma.com.
 +
 +