过程 176.1. Git
- install
sudo apt-get install git-core
- config
$ git-config --global user.name neo $ git-config --global user.email openunix@163.com
- Initializ
$ mkdir repository $ cd repository/ /repository$ git-init-db Initialized empty Git repository in .git/
to check .gitconfig file
$ cat ~/.gitconfig [user] name = chen email = openunix@163.com
176.1. Repositories 仓库管理
176.1.1. initial setup
Tell git who you are: $ git config user.name "FirstName LastName" $ git config user.email "user@example.com" If you have many git repositories under your current user, you can set this for all of them $ git config --global user.name "FirstName LastName" $ git config --global user.email "user@example.com" If you want pretty colors, you can setup the following for branch, status, and diff commands: $ git config --global color.branch "auto" $ git config --global color.status "auto" $ git config --global color.diff "auto" Or, to turn all color options on (with git 1.5.5+), use: $ git config --global color.ui "auto" To enable aut-detection for number of threads to use (good for multi-CPU or multi-core computers) for packing repositories, use: $ git config --global pack.threads "0" To disable the rename detection limit (which is set "pretty low" according to Linus, "just to not cause problems for people who have less memory in their machines than kernel developers tend to have"), use: $ git config --global diff.renamelimit "0"
176.1.2. checkout
将 nqp-cc/src/QASTCompilerMAST.nqp 文件 重置到 211ab0b19f25b8c81685a97540f4b1491eb17504 版本
git checkout 211ab0b19f25b8c81685a97540f4b1491eb17504 -- nqp-cc/src/QASTCompilerMAST.nqp
176.1.3. Creating and Commiting
$ cd (project-directory) $ git init $ (add some files) $ git add . $ git commit -m 'Initial commit'
176.1.4. Manager remote
remote add
git remote add origin git@localhost:example.git
remote show
git remote show origin
remote rm
git remote rm origin
添加多个远程仓库
git remote add origin git@localhost:example.git git remote add another https://gitcafe.com/netkiller/netkiller.gitcafe.com.git git push origin master git push another master
176.1.5. Status
$ git clone git://10.10.0.5/example.git Cloning into example... remote: Counting objects: 5, done. remote: Compressing objects: 100% (4/4), done. remote: Total 5 (delta 1), reused 0 (delta 0) Receiving objects: 100% (5/5), done. Resolving deltas: 100% (1/1), done. neo@neo-OptiPlex-380:~/tmp$ cd example/ neo@neo-OptiPlex-380:~/tmp/example$ git status # On branch master nothing to commit (working directory clean) neo@neo-OptiPlex-380:~/tmp/example$ ls test1 test2 test3 test4 neo@neo-OptiPlex-380:~/tmp/example$ echo hello > test1 neo@neo-OptiPlex-380:~/tmp/example$ git status # On branch master # 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: test1 # no changes added to commit (use "git add" and/or "git commit -a")
176.1.6. Diff
neo@neo-OptiPlex-380:~/tmp/example$ git diff diff --git a/test1 b/test1 index e69de29..ce01362 100644 --- a/test1 +++ b/test1 @@ -0,0 +1 @@ +hello
比较 nqp-cc/src/QASTCompilerMAST.nqp 文件 当前版本与 211ab0b19f25b8c81685a97540f4b1491eb17504 版本的区别
git diff 211ab0b19f25b8c81685a97540f4b1491eb17504 -- nqp-cc/src/QASTCompilerMAST.nqp
176.1.6.1. --name-only 仅显示文件名
git diff --name-only
176.1.7. Cloning
$ git clone git://github.com/git/hello-world.git $ cd hello-world $ (edit files) $ git add (files) $ git commit -m 'Explain what I changed'
176.1.8. Push
$ git clone git://10.10.0.5/example.git $ cd example $ (edit files) $ git add (files) $ git commit -m 'Explain what I changed' $ git push origin master Counting objects: 5, done. Delta compression using up to 2 threads. Compressing objects: 100% (2/2), done. Writing objects: 100% (3/3), 278 bytes, done. Total 3 (delta 0), reused 0 (delta 0) To git://10.10.0.5/example.git 27f8417..b088cc3 master -> master
176.1.9. Pull
$ git pull remote: Counting objects: 5, done. remote: Compressing objects: 100% (2/2), done. remote: Total 3 (delta 0), reused 0 (delta 0) Unpacking objects: 100% (3/3), done. From git://10.10.0.5/example 27f8417..b088cc3 master -> origin/master Updating 27f8417..b088cc3 Fast-forward test1 | 1 + 1 files changed, 1 insertions(+), 0 deletions(-)
176.1.10. fetch
$ git fetch remote: Counting objects: 3, done. remote: Compressing objects: 100% (2/2), done. remote: Total 2 (delta 1), reused 0 (delta 0) Unpacking objects: 100% (2/2), done. From git://10.10.0.5/example b088cc3..7e8c17d master -> origin/master
176.1.11. Creating a Patch
$ git clone git://github.com/git/hello-world.git $ cd hello-world $ (edit files) $ git add (files) $ git commit -m 'Explain what I changed' $ git format-patch origin/master
176.1.12. reset
重置到上一个版本
git log git reset --hard HEAD^ git log git push -f
原文出处:Netkiller 系列 手札
本文作者:陈景峯
转载请与作者联系,同时请务必标明文章原始出处和作者信息及本声明。
时间: 2024-09-28 23:16:16