Using remote branches: Push and Pull
TweetPosted on Sunday Mar 09, 2014 at 04:52PM in Technology
Preparation: make 2 clones at local
kyle-no-MacBook:remotebranchprac kyle$ mkdir local1 kyle-no-MacBook:remotebranchprac kyle$ mkdir local2 kyle-no-MacBook:remotebranchprac kyle$ cd local1 kyle-no-MacBook:local1 kyle$ git clone git@github.com:lbtc-xxx/hello.git Cloning into 'hello'... remote: Reusing existing pack: 9, done. remote: Total 9 (delta 0), reused 0 (delta 0) Receiving objects: 100% (9/9), done. Checking connectivity... done kyle-no-MacBook:local1 kyle$ cd ../local2 kyle-no-MacBook:local2 kyle$ git clone git@github.com:lbtc-xxx/hello.git Cloning into 'hello'... remote: Reusing existing pack: 9, done. remote: Total 9 (delta 0), reused 0 (delta 0) Receiving objects: 100% (9/9), done. Checking connectivity... done kyle-no-MacBook:local2 kyle$
Push from local1
- First, modify and commit
kyle-no-MacBook:hello kyle$ echo hello-iam-local1 >> README.md kyle-no-MacBook:hello kyle$ git commit -am 'commit at local1' [master e4ef489] commit at local1 1 file changed, 1 insertion(+) kyle-no-MacBook:hello kyle$
- Push
kyle-no-MacBook:hello kyle$ git remote -v origin git@github.com:lbtc-xxx/hello.git (fetch) origin git@github.com:lbtc-xxx/hello.git (push) kyle-no-MacBook:hello kyle$ git push origin master Counting objects: 5, done. Writing objects: 100% (3/3), 274 bytes | 0 bytes/s, done. Total 3 (delta 0), reused 0 (delta 0) To git@github.com:lbtc-xxx/hello.git 9eb01ce..e4ef489 master -> master kyle-no-MacBook:hello kyle$
- Now we can see the change from GitHub.
Fetch and merge from local2
kyle-no-MacBook:hello kyle$ pwd /Users/kyle/tmp/remotebranchprac/local2/hello kyle-no-MacBook:hello kyle$ git remote -v origin git@github.com:lbtc-xxx/hello.git (fetch) origin git@github.com:lbtc-xxx/hello.git (push) kyle-no-MacBook:hello kyle$ cat README.md hoge hogehoge hogehogehoge kyle-no-MacBook:hello kyle$ git fetch origin remote: Counting objects: 3, done. remote: Total 3 (delta 0), reused 3 (delta 0) Unpacking objects: 100% (3/3), done. From github.com:lbtc-xxx/hello 9eb01ce..e4ef489 master -> origin/master kyle-no-MacBook:hello kyle$
- But the file is not updated yet.
kyle-no-MacBook:hello kyle$ cat README.md hoge hogehoge hogehogehoge kyle-no-MacBook:hello kyle$
- We have to merge it manually.
kyle-no-MacBook:hello kyle$ git merge origin/master Updating 9eb01ce..e4ef489 Fast-forward README.md | 1 + 1 file changed, 1 insertion(+) kyle-no-MacBook:hello kyle$ cat README.md hoge hogehoge hogehogehoge hello-iam-local1 kyle-no-MacBook:hello kyle$
- Logs are updated too.
kyle-no-MacBook:hello kyle$ git log commit e4ef4897880924b430721186b36212b32ef5cf12 Author: lbtc-xxx <lbtc-xxx@example.com> Date: Sun Mar 9 16:59:00 2014 +0900 commit at local1
Pull
- Do some work at local2
kyle-no-MacBook:hello kyle$ pwd /Users/kyle/tmp/remotebranchprac/local2/hello kyle-no-MacBook:hello kyle$ echo hello-iam-local2 >> README.md kyle-no-MacBook:hello kyle$ git commit -am 'commit at local2' [master 059de38] commit at local2 1 file changed, 1 insertion(+) kyle-no-MacBook:hello kyle$ git push origin master Counting objects: 5, done. Delta compression using up to 8 threads. Compressing objects: 100% (2/2), done. Writing objects: 100% (3/3), 277 bytes | 0 bytes/s, done. Total 3 (delta 0), reused 0 (delta 0) To git@github.com:lbtc-xxx/hello.git e4ef489..059de38 master -> master kyle-no-MacBook:hello kyle$
- Pull at local1
kyle-no-MacBook:hello kyle$ pwd /Users/kyle/tmp/remotebranchprac/local1/hello kyle-no-MacBook:hello kyle$ git pull remote: Counting objects: 3, done. remote: Compressing objects: 100% (2/2), done. remote: Total 3 (delta 0), reused 0 (delta 0) Unpacking objects: 100% (3/3), done. From github.com:lbtc-xxx/hello e4ef489..059de38 master -> origin/master Updating e4ef489..059de38 Fast-forward README.md | 1 + 1 file changed, 1 insertion(+) kyle-no-MacBook:hello kyle$ cat README.md hoge hogehoge hogehogehoge hello-iam-local1 hello-iam-local2 kyle-no-MacBook:hello kyle$
Push a branch from local1
kyle-no-MacBook:hello kyle$ pwd /Users/kyle/tmp/remotebranchprac/local1/hello kyle-no-MacBook:hello kyle$ git checkout -b b1 Switched to a new branch 'b1' kyle-no-MacBook:hello kyle$ git remote -v origin git@github.com:lbtc-xxx/hello.git (fetch) origin git@github.com:lbtc-xxx/hello.git (push) kyle-no-MacBook:hello kyle$ git push origin b1 Total 0 (delta 0), reused 0 (delta 0) To git@github.com:lbtc-xxx/hello.git * [new branch] b1 -> b1 kyle-no-MacBook:hello kyle$
- Not we can see an new branch in GitHub
Pull a branch at local2
kyle-no-MacBook:hello kyle$ cd ../../local2/hello kyle-no-MacBook:hello kyle$ git branch * master kyle-no-MacBook:hello kyle$ git pull From github.com:lbtc-xxx/hello * [new branch] b1 -> origin/b1 Already up-to-date.
- But we can't see any branches yet.
kyle-no-MacBook:hello kyle$ git branch * master
- This makes it appear.
kyle-no-MacBook:hello kyle$ git checkout -b b1 origin/b1 Branch b1 set up to track remote branch b1 from origin. Switched to a new branch 'b1' kyle-no-MacBook:hello kyle$
- Do some work at b1 branch at local2, then push
kyle-no-MacBook:hello kyle$ pwd /Users/kyle/tmp/remotebranchprac/local2/hello kyle-no-MacBook:hello kyle$ echo hello-iam-local2-b1 >> README.md kyle-no-MacBook:hello kyle$ git commit -am 'local2-b1' [b1 bdbe00c] local2-b1 1 file changed, 1 insertion(+) kyle-no-MacBook:hello kyle$ git push warning: push.default is unset; its implicit value is changing in ... 'current' instead of 'simple' if you sometimes use older versions of Git) Counting objects: 5, done. Delta compression using up to 8 threads. Compressing objects: 100% (2/2), done. Writing objects: 100% (3/3), 281 bytes | 0 bytes/s, done. Total 3 (delta 0), reused 0 (delta 0) To git@github.com:lbtc-xxx/hello.git 059de38..bdbe00c b1 -> b1 kyle-no-MacBook:hello kyle$
- fetch and merge at local1
kyle-no-MacBook:hello kyle$ pwd /Users/kyle/tmp/remotebranchprac/local1/hello kyle-no-MacBook:hello kyle$ git fetch origin kyle-no-MacBook:hello kyle$ git branch * b1 master kyle-no-MacBook:hello kyle$ cat README.md hoge hogehoge hogehogehoge hello-iam-local1 hello-iam-local2 kyle-no-MacBook:hello kyle$ git merge origin/b1 Updating 059de38..bdbe00c Fast-forward README.md | 1 + 1 file changed, 1 insertion(+) kyle-no-MacBook:hello kyle$ cat README.md hoge hogehoge hogehogehoge hello-iam-local1 hello-iam-local2 hello-iam-local2-b1 kyle-no-MacBook:hello kyle$
checkout --remote
Create a branch and push
kyle-no-MacBook:hello kyle$ git branch b4 kyle-no-MacBook:hello kyle$ git checkout b4 Switched to branch 'b4' kyle-no-MacBook:hello kyle$ pwd /Users/kyle/tmp/remotebranchprac/local1/hello kyle-no-MacBook:hello kyle$ echo b4-local1 > README.md kyle-no-MacBook:hello kyle$ git commit -am 'local1-b4' [b4 75dc62a] local1-b4 1 file changed, 1 insertion(+), 6 deletions(-) kyle-no-MacBook:hello kyle$ git push origin b4 Counting objects: 8, done. Delta compression using up to 8 threads. Compressing objects: 100% (3/3), done. Writing objects: 100% (6/6), 503 bytes | 0 bytes/s, done. Total 6 (delta 1), reused 0 (delta 0) To git@github.com:lbtc-xxx/hello.git * [new branch] b4 -> b4 kyle-no-MacBook:hello kyle$
fetch and checkout
kyle-no-MacBook:hello kyle$ pwd /Users/kyle/tmp/remotebranchprac/local2/hello kyle-no-MacBook:hello kyle$ git fetch remote: Counting objects: 10, done. remote: Compressing objects: 100% (2/2), done. remote: Total 6 (delta 1), reused 6 (delta 1) Unpacking objects: 100% (6/6), done. From github.com:lbtc-xxx/hello * [new branch] b4 -> origin/b4 kyle-no-MacBook:hello kyle$ git checkout --track origin/b4 Branch b4 set up to track remote branch b4 from origin. Switched to a new branch 'b4' kyle-no-MacBook:hello kyle$ cat README.md b4-local1 kyle-no-MacBook:hello kyle$
Listing remote branches
kyle-no-MacBook:hello kyle$ git branch -r origin/HEAD -> origin/master origin/b1 origin/b2 origin/b3 origin/b4 origin/master kyle-no-MacBook:hello kyle$
Tags: git
Using Branches
TweetPosted on Sunday Mar 09, 2014 at 04:01PM in Technology
Create a branch
git branch [BRANCH_NAME]
- It goes like this:
kyle-no-MacBook:hello kyle$ git branch * master kyle-no-MacBook:hello kyle$ git branch branch1 kyle-no-MacBook:hello kyle$ git branch branch1 * master
- We are still in master branch.
- To change the branch to use as working tree:
kyle-no-MacBook:hello kyle$ git checkout branch1 Switched to branch 'branch1' kyle-no-MacBook:hello kyle$ git branch * branch1 master kyle-no-MacBook:hello kyle$
- There's a shortcut:
kyle-no-MacBook:hello kyle$ git checkout -b branch2 Switched to a new branch 'branch2' kyle-no-MacBook:hello kyle$ git branch branch1 * branch2 master kyle-no-MacBook:hello kyle$
Make an commit at an branch
kyle-no-MacBook:hello kyle$ echo fuge >> README.md kyle-no-MacBook:hello kyle$ git status # On branch branch1 # Changes not staged for commit: # (use "git add <file>..." to update what will be committed) # (use "git checkout -- <file>..." to discard changes in working directory) # # modified: README.md # no changes added to commit (use "git add" and/or "git commit -a") kyle-no-MacBook:hello kyle$ git commit -a [branch1 114ec77] fuge 1 file changed, 1 insertion(+) kyle-no-MacBook:hello kyle$ cat README.md hoge hogehoge hogehogehoge fuge kyle-no-MacBook:hello kyle$
Back to master branch
kyle-no-MacBook:hello kyle$ git checkout master Switched to branch 'master' kyle-no-MacBook:hello kyle$ git status # On branch master nothing to commit, working directory clean kyle-no-MacBook:hello kyle$ cat README.md hoge hogehoge hogehogehoge kyle-no-MacBook:hello kyle$
- No changes are made to master branch.
Merge to master branch
kyle-no-MacBook:hello kyle$ git checkout master Switched to branch 'master' kyle-no-MacBook:hello kyle$ git merge branch1 Updating 9eb01ce..114ec77 Fast-forward README.md | 1 + 1 file changed, 1 insertion(+) kyle-no-MacBook:hello kyle$ cat README.md hoge hogehoge hogehogehoge fuge kyle-no-MacBook:hello kyle$
- If you have another branch that created from the master branch, you'll need to merge for it too.
kyle-no-MacBook:hello kyle$ git checkout branch2 Switched to branch 'branch2' kyle-no-MacBook:hello kyle$ ls -l total 8 -rw-r--r--+ 1 kyle staff 27 3 9 16:20 README.md kyle-no-MacBook:hello kyle$ cat README.md hoge hogehoge hogehogehoge kyle-no-MacBook:hello kyle$ git merge master Updating 9eb01ce..114ec77 Fast-forward README.md | 1 + 1 file changed, 1 insertion(+) kyle-no-MacBook:hello kyle$ cat README.md hoge hogehoge hogehogehoge fuge kyle-no-MacBook:hello kyle$
Delete an branch
kyle-no-MacBook:hello kyle$ git branch -d branch1 Deleted branch branch1 (was 114ec77). kyle-no-MacBook:hello kyle$
Resolve a conflict
- Create 2 branches from the master.
kyle-no-MacBook:hello kyle$ git checkout -b branch1 Switched to a new branch 'branch1' kyle-no-MacBook:hello kyle$ git checkout master Switched to branch 'master' Your branch is ahead of 'origin/master' by 1 commit. (use "git push" to publish your local commits) kyle-no-MacBook:hello kyle$ git checkout -b branch2 Switched to a new branch 'branch2' kyle-no-MacBook:hello kyle$
- Commit to each branches that will makes conflict
kyle-no-MacBook:hello kyle$ echo branch1 >> README.md kyle-no-MacBook:hello kyle$ git commit -a -m 'branch1' [branch1 2a74c5b] branch1 1 file changed, 1 insertion(+) kyle-no-MacBook:hello kyle$ git checkout branch2 Switched to branch 'branch2' kyle-no-MacBook:hello kyle$ echo branch2 >> README.md kyle-no-MacBook:hello kyle$ git commit -a -m 'branch2' [branch2 f44a522] branch2 1 file changed, 1 insertion(+) kyle-no-MacBook:hello kyle$
- Make an attempt to merge both branches
kyle-no-MacBook:hello kyle$ git checkout master Switched to branch 'master' Your branch is ahead of 'origin/master' by 1 commit. (use "git push" to publish your local commits) kyle-no-MacBook:hello kyle$ git merge branch1 Updating 114ec77..2a74c5b Fast-forward README.md | 1 + 1 file changed, 1 insertion(+) kyle-no-MacBook:hello kyle$ git merge branch2 Auto-merging README.md CONFLICT (content): Merge conflict in README.md Automatic merge failed; fix conflicts and then commit the result. kyle-no-MacBook:hello kyle$ git status # On branch master # Your branch is ahead of 'origin/master' by 2 commits. # (use "git push" to publish your local commits) # # You have unmerged paths. # (fix conflicts and run "git commit") # # Unmerged paths: # (use "git add <file>..." to mark resolution) # # both modified: README.md # no changes added to commit (use "git add" and/or "git commit -a") kyle-no-MacBook:hello kyle$
- README.md is below now:
kyle-no-MacBook:hello kyle$ cat README.md hoge hogehoge hogehogehoge fuge <<<<<<< HEAD branch1 ======= branch2 >>>>>>> branch2 kyle-no-MacBook:hello kyle$
- So we have to edit it to resolve conflict manually:
kyle-no-MacBook:hello kyle$ vi README.md kyle-no-MacBook:hello kyle$ cat README.md hoge hogehoge hogehogehoge fuge branch1 & branch2 kyle-no-MacBook:hello kyle$
- After you done edit, then you can add & commit.
- Add tells git that you have done resolving.
kyle-no-MacBook:hello kyle$ git commit -a -m 'resolve conflict' [master 04c3da3] resolve conflict kyle-no-MacBook:hello kyle$ git status # On branch master # Your branch is ahead of 'origin/master' by 4 commits. # (use "git push" to publish your local commits) # nothing to commit, working directory clean kyle-no-MacBook:hello kyle$ git log commit 04c3da3496f6acc3acce525df855e5173b93f9d7 Merge: 2a74c5b f44a522 Author: lbtc-xxx <lbtc-xxx@example.com> Date: Sun Mar 9 16:32:35 2014 +0900 resolve conflict commit f44a5224c39a6df457eb37a6c77fe593de8b5643 Author: lbtc-xxx <lbtc-xxx@example.com> Date: Sun Mar 9 16:28:32 2014 +0900 branch2 commit 2a74c5b1eebf19717212b6a75e540ba88591bfdb Author: lbtc-xxx <lbtc-xxx@example.com> Date: Sun Mar 9 16:28:19 2014 +0900 branch1
Check the latest commit of each branches
kyle-no-MacBook:hello kyle$ git branch -v branch1 2a74c5b branch1 branch2 f44a522 branch2 * master 04c3da3 [ahead 4] resolve conflict kyle-no-MacBook:hello kyle$
- This shows branches that already merged
kyle-no-MacBook:hello kyle$ git branch --merged branch1 branch2 * master kyle-no-MacBook:hello kyle$
- This shows branches that not merged yet
kyle-no-MacBook:hello kyle$ git branch --no-merged branch2 master kyle-no-MacBook:hello kyle$
Tags: git
Amend commit and push
TweetPosted on Sunday Mar 09, 2014 at 09:50AM in Technology
Assume this:
kyle-no-MacBook:gitprac5 kyle$ ls -l total 8 -rw-r--r--+ 1 kyle staff 5 3 9 09:46 hoge.txt kyle-no-MacBook:gitprac5 kyle$ cat hoge.txt hoge kyle-no-MacBook:gitprac5 kyle$ git status # On branch master nothing to commit, working directory clean kyle-no-MacBook:gitprac5 kyle$
Committing with forgotten operation
kyle-no-MacBook:gitprac5 kyle$ echo hogehoge >> hoge.txt kyle-no-MacBook:gitprac5 kyle$ echo forgotten > fotgotten.txt kyle-no-MacBook:gitprac5 kyle$ git add hoge.txt kyle-no-MacBook:gitprac5 kyle$ git commit -m 'second' [master addf0f0] second 1 file changed, 1 insertion(+) kyle-no-MacBook:gitprac5 kyle$ git status # On branch master # Untracked files: # (use "git add <file>..." to include in what will be committed) # # forgotten.txt nothing added to commit but untracked files present (use "git add" to track) kyle-no-MacBook:gitprac5 kyle$ git log commit addf0f0475267dbb18d89b994412da597098077f Author: kyle <kyle@example.com> Date: Sun Mar 9 09:54:55 2014 +0900 second commit 6db0e3d793e9f79621093f6cab302611d7d55013 Author: kyle <kyle@example.com> Date: Sun Mar 9 09:54:10 2014 +0900 initial kyle-no-MacBook:gitprac5 kyle$
Amend
kyle-no-MacBook:gitprac5 kyle$ git add forgotten.txt kyle-no-MacBook:gitprac5 kyle$ git commit --amend
- The editor runs
- We can modify commit message and overwrite last commit. I add “revised” to bottom of the message.
- After edit&save and quit the editor, this goes like this:
kyle-no-MacBook:gitprac5 kyle$ git commit --amend [master 631c895] second revised 2 files changed, 2 insertions(+) create mode 100644 forgotten.txt kyle-no-MacBook:gitprac5 kyle$ git log commit 631c8958432a476ebc287c3a2de0566424b483eb Author: kyle <kyle@example.com> Date: Sun Mar 9 09:54:55 2014 +0900 second revised commit 6db0e3d793e9f79621093f6cab302611d7d55013 Author: kyle <kyle@example.com> Date: Sun Mar 9 09:54:10 2014 +0900 initial kyle-no-MacBook:gitprac5 kyle$
Push
- We can push that amend commit to remote branch.
git push -f origin [BRANCH_NAME]
- This goes like this:
kyle-no-MacBook:jboss-logmanager kyle$ git status # On branch LOGMGR-104 # Changes not staged for commit: # (use "git add <file>..." to update what will be committed) # (use "git checkout -- <file>..." to discard changes in working directory) # # modified: src/main/java/org/jboss/logmanager/handlers/SyslogHandler.java # modified: src/test/java/org/jboss/logmanager/handlers/SyslogHandlerTests.java # no changes added to commit (use "git add" and/or "git commit -a") kyle-no-MacBook:jboss-logmanager kyle$ git add src/main/java/org/jboss/logmanager/handlers/SyslogHandler.java kyle-no-MacBook:jboss-logmanager kyle$ git add src/test/java/org/jboss/logmanager/handlers/SyslogHandlerTests.java kyle-no-MacBook:jboss-logmanager kyle$ git status # On branch LOGMGR-104 # Changes to be committed: # (use "git reset HEAD <file>..." to unstage) # # modified: src/main/java/org/jboss/logmanager/handlers/SyslogHandler.java # modified: src/test/java/org/jboss/logmanager/handlers/SyslogHandlerTests.java # kyle-no-MacBook:jboss-logmanager kyle$ git commit --amend [LOGMGR-104 262d02f] [LOGMGR-104] SyslogHandler doesn't handle multi-byte characters correctly Author: lbtc_xxx <lbtc-xxx@example.com> 2 files changed, 83 insertions(+), 11 deletions(-) kyle-no-MacBook:jboss-logmanager kyle$ git push -f origin LOGMGR-104 Counting objects: 30, done. Delta compression using up to 8 threads. Compressing objects: 100% (11/11), done. Writing objects: 100% (17/17), 2.38 KiB | 0 bytes/s, done. Total 17 (delta 5), reused 0 (delta 0) To git@github.com:lbtc-xxx/jboss-logmanager.git + ab3033a...262d02f LOGMGR-104 -> LOGMGR-104 (forced update) kyle-no-MacBook:jboss-logmanager kyle$
- If you have a pull request, it will be updated together.
- It makes some troubles on some cases such as very active repository so we have to be careful when use this way.
Tags: git
Discard all changes and sync to the HEAD of the repository
TweetPosted on Sunday Mar 09, 2014 at 09:38AM in Technology
Assume this:
kyle-no-MacBook:gitprac5 kyle$ ls -l total 8 -rw-r--r--+ 1 kyle staff 5 3 9 09:40 hoge.txt kyle-no-MacBook:gitprac5 kyle$ cat hoge.txt hoge kyle-no-MacBook:gitprac5 kyle$ git status # On branch master nothing to commit, working directory clean kyle-no-MacBook:gitprac5 kyle$
Wasting working tree
kyle-no-MacBook:gitprac5 kyle$ echo hoge >> hoge.txt kyle-no-MacBook:gitprac5 kyle$ echo untracked > untracked.txt kyle-no-MacBook:gitprac5 kyle$ echo tracked > tracked.txt kyle-no-MacBook:gitprac5 kyle$ git add tracked.txt kyle-no-MacBook:gitprac5 kyle$ git status # On branch master # Changes to be committed: # (use "git reset HEAD <file>..." to unstage) # # new file: tracked.txt # # Changes not staged for commit: # (use "git add <file>..." to update what will be committed) # (use "git checkout -- <file>..." to discard changes in working directory) # # modified: hoge.txt # # Untracked files: # (use "git add <file>..." to include in what will be committed) # # untracked.txt kyle-no-MacBook:gitprac5 kyle$ ls -l total 24 -rw-r--r--+ 1 kyle staff 10 3 9 09:45 hoge.txt -rw-r--r--+ 1 kyle staff 8 3 9 09:45 tracked.txt -rw-r--r--+ 1 kyle staff 10 3 9 09:45 untracked.txt kyle-no-MacBook:gitprac5 kyle$
Do it
- These 2 commands will work:
git reset --hard HEAD git clean -f
- Let's do it:
kyle-no-MacBook:gitprac5 kyle$ git reset --hard HEAD HEAD is now at 31e0ee6 initial kyle-no-MacBook:gitprac5 kyle$ ls -l total 16 -rw-r--r--+ 1 kyle staff 5 3 9 09:46 hoge.txt -rw-r--r--+ 1 kyle staff 10 3 9 09:45 untracked.txt kyle-no-MacBook:gitprac5 kyle$ git clean -f Removing untracked.txt kyle-no-MacBook:gitprac5 kyle$ ls -l total 8 -rw-r--r--+ 1 kyle staff 5 3 9 09:46 hoge.txt kyle-no-MacBook:gitprac5 kyle$ git status # On branch master nothing to commit, working directory clean kyle-no-MacBook:gitprac5 kyle$
- When you want to delete directories, you can use “git clean -fd”.
Tags: git
Delete and move
TweetPosted on Sunday Mar 09, 2014 at 09:20AM in Technology
Assume this:
kyle-no-MacBook:gitprac5 kyle$ ls -l total 8 -rw-r--r--+ 1 kyle staff 5 3 9 09:27 hoge.txt kyle-no-MacBook:gitprac5 kyle$ cat hoge.txt hoge kyle-no-MacBook:gitprac5 kyle$ git status # On branch master nothing to commit, working directory clean kyle-no-MacBook:gitprac5 kyle$
Delete
Delete from working tree
kyle-no-MacBook:gitprac5 kyle$ rm hoge.txt kyle-no-MacBook:gitprac5 kyle$ git status # On branch master # Changes not staged for commit: # (use "git add/rm <file>..." to update what will be committed) # (use "git checkout -- <file>..." to discard changes in working directory) # # deleted: hoge.txt # no changes added to commit (use "git add" and/or "git commit -a") kyle-no-MacBook:gitprac5 kyle$
Add deletion to index
kyle-no-MacBook:gitprac5 kyle$ git rm hoge.txt rm 'hoge.txt' kyle-no-MacBook:gitprac5 kyle$ git status # On branch master # Changes to be committed: # (use "git reset HEAD <file>..." to unstage) # # deleted: hoge.txt # kyle-no-MacBook:gitprac5 kyle$
Commit
kyle-no-MacBook:gitprac5 kyle$ git commit -m 'delete' [master 8793936] delete 1 file changed, 1 deletion(-) delete mode 100644 hoge.txt kyle-no-MacBook:gitprac5 kyle$ git status # On branch master nothing to commit, working directory clean kyle-no-MacBook:gitprac5 kyle$ ls -l kyle-no-MacBook:gitprac5 kyle$
Move / Rename
kyle-no-MacBook:gitprac5 kyle$ git mv hoge.txt hige.txt kyle-no-MacBook:gitprac5 kyle$ git status # On branch master # Changes to be committed: # (use "git reset HEAD <file>..." to unstage) # # renamed: hoge.txt -> hige.txt # kyle-no-MacBook:gitprac5 kyle$
- Another identical operation:
kyle-no-MacBook:gitprac5 kyle$ mv hoge.txt hige.txt kyle-no-MacBook:gitprac5 kyle$ git rm hoge.txt rm 'hoge.txt' kyle-no-MacBook:gitprac5 kyle$ git add hige.txt kyle-no-MacBook:gitprac5 kyle$ git status # On branch master # Changes to be committed: # (use "git reset HEAD <file>..." to unstage) # # renamed: hoge.txt -> hige.txt # kyle-no-MacBook:gitprac5 kyle$
Tags: git