ปัจจุบันถ้าถามถึงนักพัฒนาซอพแวร์ รุ่นใหม่ๆ ส่วนใหญ่คงไม่มีใครไม่รู้จักเจ้า GIT Version Control ซึ่งเจ้า GIT นี้มีคุณประโยชน์อย่างยิ่งกับนักพัฒนาซอพแวร์ยุคใหม่ๆ เพื่อเอามาใช้แก้ปัญหาเรื่องการควบคุมเวอร์ชั่นของการเขียนโค๊ดเพื่อให้ง่ายต่อการติดตามประวัติการเขียนโค๊ด อยากย้อนเวอร์ชั่นของโค๊ดเมื่อสัปดาห์ที่แล้วหรือติดตามผู้ที่เขียนโค๊ดส่วนนั้นๆ ว่าใครเป็นคนเขียน ก็สามารถทำได้ และวันนี้ผมก็นำเอาคำสั่งของเจ้า GIT ที่มักจะใช้บ่อยๆ เป็นประจำสำหรับการใช้งานผ่าน command line มาแบ่งปัน
| Git task | Notes | Git commands |
| Tell Git who you are | Configure the author name and email address to be used with your commits.Note that Git strips some characters (for example trailing periods) from user.name. |
git config --global user.name "Sam Smith" git config --global user.email [email protected] |
| Create a new local repository |
git init | |
| Check out a repository | Create a working copy of a local repository: |
git clone /path/to/repository |
| For a remote server, use: |
git clone username@host:/path/to/repository | |
| Add files | Add one or more files to staging (index): |
git add <filename> git add * |
| Commit | Commit changes to head (but not yet to the remote repository): |
git commit -m "Commit message" |
| Commit any files you’ve added with git add, and also commit any files you’ve changed since then: |
git commit -a | |
| Push | Send changes to the master branch of your remote repository: |
git push origin master |
| Status | List the files you’ve changed and those you still need to add or commit: |
git status |
| Connect to a remote repository | If you haven’t connected your local repository to a remote server, add the server to be able to push to it: |
git remote add origin <server> |
| List all currently configured remote repositories: |
git remote -v | |
| Branches | Create a new branch and switch to it: |
git checkout -b <branchname> |
| Switch from one branch to another: |
git checkout <branchname> | |
| List all the branches in your repo, and also tell you what branch you’re currently in: |
git branch | |
| Delete the feature branch: |
git branch -d <branchname> | |
| Push the branch to your remote repository, so others can use it: |
git push origin <branchname> | |
| Push all branches to your remote repository: |
git push --all origin | |
| Delete a branch on your remote repository: |
git push origin :<branchname> | |
| Update from the remote repository | Fetch and merge changes on the remote server to your working directory: |
git pull |
| To merge a different branch into your active branch: |
git merge <branchname> | |
| View all the merge conflicts:View the conflicts against the base file:
Preview changes, before merging: |
git diffgit diff --base <filename> git diff <sourcebranch> <targetbranch> | |
| After you have manually resolved any conflicts, you mark the changed file: |
git add <filename> | |
| Tags | You can use tagging to mark a significant changeset, such as a release: |
git tag 1.0.0 <commitID> |
| CommitId is the leading characters of the changeset ID, up to 10, but must be unique. Get the ID using: |
git log | |
| Push all tags to remote repository: |
git push --tags origin | |
| Undo local changes | If you mess up, you can replace the changes in your working tree with the last content in head:Changes already added to the index, as well as new files, will be kept. |
git checkout -- <filename> |
| Instead, to drop all your local changes and commits, fetch the latest history from the server and point your local master branch at it, do this: |
git fetch origin git reset --hard origin/master | |
| Search | Search the working directory for foo(): |
git grep "foo()" |
จริงแล้วผมเองก็ไม่ได้แต่งเติมอะไรมากมาย เพียงไปเจอมาจาก web : https://confluence.atlassian.com/display/STASH/Basic+Git+commands
เลยอยากที่จะเอามาแบ่งปันกัน