Anúncio
Anúncio

Mais conteúdo relacionado

Anúncio

Git Distributed Version Control System

  1. Git Victor Wong
  2. Outline Install and Configure Git (x) Git Concepts Git Commands Git Workflow Git Hosting (GitHub, Bitbucket) Case Studies
  3. Installation Git for OS X http://code.google.com/p/git-osx-installer/ Git for Windows http://code.google.com/p/msysgit/
  4. Setting user's name and email globally in git $ git config --global user.name "Victor Wong" $ git config --global user.email "victorwkm@gmail.com" $ git config user.name bonus: $ cat ~/.gitconfig
  5. Add color to status and branch $ git config --global color.status auto $ git config --global color.branch auto
  6. Git Concepts
  7. Git Concepts remote repo <-> local repo <-> staging area <-> working directory # On branch master # Changes to be committed: # (use "git reset HEAD <file>..." to unstage) # Changed but not updated: # (use "git add <file>..." to update what will be committed) # (use "git checkout -- <file>..." to discard changes in working directory) # Untracked files: # (use "git add <file>..." to include in what will be committed)
  8. Basic Git Commands Creating & Getting Branching Inspection init branch log clone checkout show merge Basic Remote Sharing status remote add push commit pull mv, rm fetch tag
  9. Advanced Git Commands git-stash git-pop git-apply git-blame git-diff git-reflog git-reset git-revert git-clean git-rebase git-fetch
  10. Branch
  11. $ git branch testing
  12. $ git checkout testing
  13. new commit on testing branch
  14. $ git checkout master
  15. $ git commit -m 'Change the master!'
  16. Merge
  17. $ git checkout master $ git merge iss53 Merge made by recursive. README | 1 + 1 files changed, 1 insertions(+), 0 deletions(-)
  18. Conflict
  19. $ git status $ vim index.html $ git add index.html $ git commit
  20. .git/ config hooks (pre-commit, post-commit, ...)
  21. Git Workflow
  22. Distributed Workflows
  23. Centralized Workflow (us)
  24. Integration-Manager Workflow (GitHub)
  25. Dictator and Lieutenants Workflow (Linux)
  26. github.com
  27. GitHub Code Review Commit Comments Analyze Branches Compare View Pull request
  28. Case Studies
  29. Can I change the commit message before or after push?
  30. Can I change the commit message before or after push? $ git commit --amend bonus: $ git rebase -i Note: Never change your commit history after push to a public repository!
  31. How do I ignore files in a project? Some files such as .log which shouldn't be include in every project, can I ignore it in every projects?
  32. How do I ignore files in a project? Some files such as .log which shouldn't be include in every project, can I ignore it in every projects? $ vim .gitignore ... add the file and folder path that you don't want git to track ... $ vim ~/.gitignore_global $ git config --global core.excludesfile ~/.gitignore_global Bonus: git config --global --list Remind: Don't add too much files in the globa excludesfile
  33. Search commit message
  34. Search commit message git log -g --grep=<pattern> -g, --walk-reflogs Instead of walking the commit ancestry chain, walk reflog entries from the most recent one to older ones. --grep=<pattern> Limit the commits output to ones with log message that matches the specified pattern (regular expression).
  35. Can I change the filename case in Git? fatal: destination exists, source=font.ttf, destination=Font.ttf
  36. Can I change the filename case in Git? fatal: destination exists, source=font.ttf, destination=Font.ttf git mv -f font.ttf Font.ttf
  37. You have pushed a WordPress folder in the Github and pull it from the server. But you make a mistake, you want to - keep the wp-config.php in the server - remove it on the GitHub, so your colleagues won't get a copy of the wp-config.php
  38. You have pushed a WordPress folder in the Github and pull it from the server. But you make a mistake, you want to - keep the wp-config.php in the server - remove it on the GitHub, so your colleagues won't get a copy of the wp-config.php [On the server] $ vim .gitignore $ git commit -am 'ignore wp-config.php file' $ git rm --cached wp-config.php $ git commit -m 'remove wp-config.php' $ git push
  39. Clients: This feature worked well in the past. Why does it not work properly today? We: How do we use Git to quickly identify the issue?
  40. Clients: This feature worked well in the past. Why does it not work properly today? We: How do we use Git to quickly identify the issue? Use GitHub to: search history blame $ git checkout <commit-sha>
  41. Can I undo a git commit?
  42. Can I undo a git commit? Preserve all changes as unstaged changes $ git reset HEAD^ Preserve all changes $ git reset --soft HEAD^ Discard all changes $ git reset --hard HEAD^
  43. You are on a branch called "development", and you received an email from the client said this bug needs to be fixed now! Hence, you tried to switch your branch to "hotfix" or "master" to do a quick fix, but your working dirctory is "dirty", what should you do?
  44. You are on a branch called "development", and you received an email from the client said this bug needs to be fixed now! Hence, you tried to switch your branch to "hotfix" or "master" to do a quick fix, but your working dirctory is "dirty", what should you do? $ git stash $ git checkout master ... fix issue ... $ git commit -am "fix issue #100" $ git checkout development $ git stash list $ git stash pop bonus: $ git stash apply stash@{0} $ git stash drop stash@{0}
  45. The same code can also applied to the following scenario. After finishing the development, you suddenly realized the you are developing a feature on the WRONG branch. Can I save those changes and apply those changes in the correct branch?
  46. Recommendations Read the git ERROR message Commit or lose it Do one thing at a time (the smaller the better) Don’t modify any history after pushing to live Practice together
  47. References Git Reference http://gitref.org/ Pro Git http://git-scm.com/book

Notas do Editor

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n
  42. \n
  43. \n
  44. \n
  45. \n
  46. \n
  47. \n
  48. \n
  49. \n
  50. \n
Anúncio