Size: px
Start display at page:

Download ""

Transcription

1

2

3

4

5

6

7 color.*

8

9

10

11

12

13

14

15 p4 edit file 24b9da aa493b52f8696cd6d3b00373

16 git clone.git git clone --bare

17 $ yum install curl-devel expat-devel gettext-devel \ openssl-devel zlib-devel $ apt-get install libcurl4-gnutls-dev libexpat1-dev gettext \ libz-dev libssl-dev $ tar -zxf git tar.gz $ cd git $ make prefix=/usr/local all $ sudo make prefix=/usr/local install git git $ git clone git://git.kernel.org/pub/scm/git/git.git

18 $ yum install git-core $ apt-get install git $ sudo port install git-core +svn +doc +bash_completion +gitweb github.com/mxcl/homebrewbrew install git

19 git git-config git /etc/gitconfig git config --system ~/.gitconfig git config --global.git/config.git/config /etc/gitconfig.gitconfig $HOME C:\Documents and Settings\$USER /etc/gitconfig $ git config --global user.name "John Doe" $ git config --global user. johndoe@example.com

20 --global --global.git/ config $ git config --global core.editor emacs $ git config --global merge.tool vimdiff git config --list $ git config --list user.name=scott Chacon user. =schacon@gmail.com color.status=auto color.branch=auto color.interactive=auto color.diff=auto... /etc/gitconfig ~/.gitconfig

21 $ git config user.name Scott Chacon $ git help <verb> $ git <verb> --help $ man git-<verb> $ git help config #git #github

22

23 $ git init.git git add $ git add *.c $ git add README $ git commit -m 'initial project version'

24 git clone clone checkout git clone [url] $ git clone git://github.com/schacon/grit.git grit.git grit $ git clone git://github.com/schacon/grit.git mygrit mygrit git:// http(s):// user@server:/path.git

25 git status $ git status On branch master nothing to commit, working directory clean master git status $ vim README $ git status On branch master Untracked files: (use "git add <file>..." to include in what will be committed) README nothing added to commit but untracked files present (use "git add" to track) README

26 git add $ git add README git status $ git status On branch master Changes to be committed: (use "git reset HEAD <file>..." to unstage) new file: README git init git add git add git add benchmarks.rb status $ git status On branch master Changes to be committed: (use "git reset HEAD <file>..." to unstage) new file: README 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: benchmarks.rb benchmarks.rb git add

27 git add git status $ git add benchmarks.rb $ git status On branch master Changes to be committed: (use "git reset HEAD <file>..." to unstage) new file: modified: README benchmarks.rb benchmarks.rb git status $ vim benchmarks.rb $ git status On branch master Changes to be committed: (use "git reset HEAD <file>..." to unstage) new file: modified: README benchmarks.rb 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: benchmarks.rb benchmarks.rb git add git add git add $ git add benchmarks.rb $ git status On branch master Changes to be committed:

28 (use "git reset HEAD <file>..." to unstage) new file: modified: README benchmarks.rb.gitignore $ cat.gitignore *.[oa] *~.o.a ~ log tmp pid.gitignore.gitignore # /! * [abc]? [0-9].gitignore # 此为注释 将被 Git 忽略 # 忽略所有.a 结尾的文件 *.a # 但 lib.a 除外!lib.a # 仅仅忽略项目根目录下的 TODO 文件, 不包括 subdir/todo /TODO # 忽略 build/ 目录下的所有文件

29 build/ # 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt doc/*.txt # ignore all.txt files in the doc/ directory doc/**/*.txt **/ git status git diff git diff git diff README benchmarks.rb status $ git status On branch master Changes to be committed: (use "git reset HEAD <file>..." to unstage) new file: README 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: benchmarks.rb git diff $ git diff diff --git a/benchmarks.rb b/benchmarks.rb index 3cb747f..da a/benchmarks.rb ,6 def end + run_code(x, 'commits 1') do

30 + git.commits.size + end + run_code(x, 'commits 2') do log = git.commits('master', 15) log.size git diff -- cached git diff --staged $ git diff --cached diff --git a/readme b/readme new file mode index a1 --- /dev/null ,0 +grit + by Tom Preston-Werner, Chris Wanstrath Grit is a Ruby library for extracting information from a Git repository git diff git diff git status $ git add benchmarks.rb $ echo '# test line' >> benchmarks.rb $ git status On branch master Changes to be committed: (use "git reset HEAD <file>..." to unstage) modified: benchmarks.rb

31 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: benchmarks.rb git diff $ git diff diff --git a/benchmarks.rb b/benchmarks.rb index e445e28..86b2f7c a/benchmarks.rb ,3 end main() ##pp Grit::GitRuby.cache_client.stats +# test line git diff --cached $ git diff --cached diff --git a/benchmarks.rb b/benchmarks.rb index 3cb747f..e445e a/benchmarks.rb ,6 def end + run_code(x, 'commits 1') do + git.commits.size + end + run_code(x, 'commits 2') do log = git.commits('master', 15) log.size git add

32 git status git commit $ git commit $EDITOR git config --global core.editor # Please enter the commit message for your changes. Lines starting # with '#' will be ignored, and an empty message aborts the commit. # On branch master # Changes to be committed: # new file: README # modified: benchmarks.rb # ~ ~ ~ ".git/commit_editmsg" 10L, 283C git status -v $ git commit -m "Story 182: Fix benchmarks for speed" [master 463dc4f] Fix benchmarks for speed 2 files changed, 3 insertions(+) create mode README 463dc4f

33 git commit -a git add $ 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: benchmarks.rb no changes added to commit (use "git add" and/or "git commit -a") $ git commit -a -m 'added new benchmarks' [master 83e38c7] added new benchmarks 1 files changed, 5 insertions(+) git add git rm git status $ rm grit.gemspec $ 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: grit.gemspec no changes added to commit (use "git add" and/or "git commit -a") git rm

34 $ git rm grit.gemspec rm 'grit.gemspec' $ git status On branch master Changes to be committed: (use "git reset HEAD <file>..." to unstage) deleted: grit.gemspec -f.a.gitignore --cached $ git rm --cached readme.txt $ git rm log/\*.log * \ log/.log $ git rm \*~ ~ mv

35 $ git mv file_from file_to $ git mv README.txt README $ git status On branch master Changes to be committed: (use "git reset HEAD <file>..." to unstage) renamed: README.txt -> README git mv $ mv README.txt README $ git rm README.txt $ git add README git mv git log git clone git://github.com/schacon/simplegit-progit.git git log $ git log commit ca82a6dff817ec66f a Author: Scott Chacon <schacon@ge .com>

36 Date: Mon Mar 17 21:52: changed the version number commit 085bb3bcb608e1e8451d4b2432f8ecbe6306e7e7 Author: Scott Chacon Date: Sat Mar 15 16:40: removed unnecessary test code commit a11bef06a3f659402fe7563abf99ad00de2209e6 Author: Scott Chacon Date: Sat Mar 15 10:31: first commit git log git log -p -2 $ git log -p -2 commit ca82a6dff817ec66f a Author: Scott Chacon <schacon@ge .com> Date: Mon Mar 17 21:52: changed the version number diff --git a/rakefile b/rakefile index a874b73..8f a/rakefile ,5 require 'rake/gempackagetask' spec = Gem::Specification.new do s s.name = "simplegit" - s.version = "0.1.0" + s.version = "0.1.1" s.author = "Scott Chacon" s. = "schacon@ge .com commit 085bb3bcb608e1e8451d4b2432f8ecbe6306e7e7 Author: Scott Chacon <schacon@ge .com>

37 Date: Sat Mar 15 16:40: removed unnecessary test code diff --git a/lib/simplegit.rb b/lib/simplegit.rb index a0a60ae..47c a/lib/simplegit.rb +++ b/lib/simplegit.rb -18,8 +18,3 class SimpleGit end end - -if $0 == FILE - git = SimpleGit.new - puts git.show -end \ No newline at end of file --word-diff git log -p $ git log -U1 --word-diff commit ca82a6dff817ec66f a Author: Scott Chacon <schacon@ge .com> Date: Mon Mar 17 21:52: changed the version number diff --git a/rakefile b/rakefile index a874b73..8f a/rakefile ,3 spec = Gem::Specification.new do s s.name = "simplegit" s.version = [-"0.1.0"-]{+"0.1.1"+} s.author = "Scott Chacon"

38 {+ +} [- -] -U1 --stat $ git log --stat commit ca82a6dff817ec66f a Author: Scott Chacon <schacon@ge .com> Date: Mon Mar 17 21:52: changed the version number Rakefile file changed, 1 insertion(+), 1 deletion(-) commit 085bb3bcb608e1e8451d4b2432f8ecbe6306e7e7 Author: Scott Chacon <schacon@ge .com> Date: Sat Mar 15 16:40: removed unnecessary test code lib/simplegit.rb file changed, 5 deletions(-) commit a11bef06a3f659402fe7563abf99ad00de2209e6 Author: Scott Chacon <schacon@ge .com> Date: Sat Mar 15 10:31: first commit README Rakefile lib/simplegit.rb files changed, 54 insertions(+) --pretty oneline short full fuller

39 $ git log --pretty=oneline ca82a6dff817ec66f a changed the version number 085bb3bcb608e1e8451d4b2432f8ecbe6306e7e7 removed unnecessary test code a11bef06a3f659402fe7563abf99ad00de2209e6 first commit format $ git log --pretty=format:"%h - %an, %ar : %s" ca82a6d - Scott Chacon, 11 months ago : changed the version number 085bb3b - Scott Chacon, 11 months ago : removed unnecessary test code a11bef0 - Scott Chacon, 11 months ago : first commit %H %h %T %t %P %p %an %ae %ad %ar %cn %ce %cd %cr %s --graph

40 $ git log --pretty=format:"%h %s" --graph * 2d3acf9 ignore errors from SIGCHLD on trap * 5e3ee11 Merge branch 'master' of git://github.com/dustin/grit \ * 420eac9 Added a method for getting the current branch. * 30e367c timeout code and tests * 5a09431 add timeout protection to grit * e1193f8 support for heads with slashes in them / * d6016bc require time for xmlschema * 11d191e Merge branch 'defunkt' into local git log -p --word-diff --stat --shortstat --name-only --name-status --abbrev-commit --relative-date --graph --pretty --oneline --pretty=oneline --abbrev-co git log -2 -<n> n --since --until

41 $ git log --since=2.weeks --author --grep --all-match git log git log -- -(n) --since, --after --until, --before --author --committer $ git log --pretty="%h - %s" --author=gitster --since=" " \ --before=" " --no-merges -- t/ 5610e3b - Fix testcase failure when extended attribute acd3b9e - Enhance hold_lock_file_for_{update,append}() f demonstrate breakage of detached checkout wi d1a43f2 - reset --hard/read-tree --reset -u: remove un 51a94af - Fix "checkout --track -b newbranch" on detac b0ad11e - pull: allow "git pull origin $something:$cur git log git log

42 --amend $ git commit --amend --amend $ git commit -m 'initial commit' $ git add forgotten_file $ git commit --amend

43 git add. git status $ git add. $ git status On branch master Changes to be committed: (use "git reset HEAD <file>..." to unstage) modified: modified: README.txt benchmarks.rb git HEAD <file>... reset $ git reset HEAD benchmarks.rb Unstaged changes after reset: M benchmarks.rb $ git status On branch master Changes to be committed: (use "git reset HEAD <file>..." to unstage) modified: README.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: benchmarks.rb

44 git status 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: benchmarks.rb $ git checkout -- benchmarks.rb $ git status On branch master Changes to be committed: (use "git reset HEAD <file>..." to unstage) modified: README.txt --amend

45 git remote $ git clone git://github.com/schacon/ticgit.git Cloning into 'ticgit'... remote: Reusing existing pack: 1857, done. remote: Total 1857 (delta 0), reused 0 (delta 0) Receiving objects: 100% (1857/1857), KiB KiB/s, done. Resolving deltas: 100% (772/772), done. Checking connectivity... done. $ cd ticgit $ git remote origin -v --verbose $ git remote -v origin git://github.com/schacon/ticgit.git (fetch) origin git://github.com/schacon/ticgit.git (push) $ cd grit $ git remote -v bakkdoor git://github.com/bakkdoor/grit.git cho45 git://github.com/cho45/grit.git defunkt git://github.com/defunkt/grit.git koke git://github.com/koke/grit.git origin git@github.com:mojombo/grit.git git remote add [shortname] [url]

46 $ git remote origin $ git remote add pb git://github.com/paulboone/ticgit.git $ git remote -v origin git://github.com/schacon/ticgit.git pb git://github.com/paulboone/ticgit.git pb git fetch pb $ git fetch pb remote: Counting objects: 58, done. remote: Compressing objects: 100% (41/41), done. remote: Total 44 (delta 24), reused 1 (delta 0) Unpacking objects: 100% (44/44), done. From git://github.com/paulboone/ticgit * [new branch] master -> pb/master * [new branch] ticgit -> pb/ticgit pb/ master $ git fetch [remote-name] git fetch origin git pull git clone git pull

47 git push [remote-name] [branch-name] origin $ git push origin master git remote show [remote-name] origin $ git remote show origin * remote origin URL: git://github.com/schacon/ticgit.git Remote branch merged with 'git pull' while on branch master master Tracked remote branches master ticgit git pull git remote show $ git remote show origin * remote origin URL: git@github.com:defunkt/github.git Remote branch merged with 'git pull' while on branch issues issues Remote branch merged with 'git pull' while on branch master master New remote branches (next fetch will store in remotes/origin)

48 caching Stale tracking branches (use 'git remote prune') libwalker walker2 Tracked remote branches acl apiv2 dashboard2 issues master postgres Local branch pushed with 'git push' master:master git push caching Stale tracking branches git pull issues master git remote rename pb paul $ git remote rename pb paul $ git remote origin paul pb/master paul/master git remote rm $ git remote rm paul $ git remote origin

49 git tag $ git tag v0.1 v1.3 $ git tag -l 'v1.4.2.*' v v v v a annotated $ git tag -a v1.4 -m 'my version 1.4' $ git tag v0.1

50 v1.3 v1.4 -m git show $ git show v1.4 tag v1.4 Tagger: Scott Chacon <schacon@ge .com> Date: Mon Feb 9 14:45: my version 1.4 commit b64cf874c3557a0f3547bd83b3ff6 Merge: 4a447f7... a6b4c97... Author: Scott Chacon <schacon@ge .com> Date: Sun Feb 8 19:02: Merge branch 'experiment' -a -s signed $ git tag -s v1.5 -m 'my signed 1.5 tag' You need a passphrase to unlock the secret key for user: "Scott Chacon <schacon@ge .com>" 1024-bit DSA key, ID F721C45A, created git show $ git show v1.5 tag v1.5 Tagger: Scott Chacon <schacon@ge .com> Date: Mon Feb 9 15:22:

51 my signed 1.5 tag -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.8 (Darwin) ieyeabecaayfakmquriacgkqon3dxfchxfr5caceimn+zxlkggjqf0qyiqbwgysn Ki0An2JeAVUCAiJ7Ox6ZEtK+NvZAj82/ =WryJ -----END PGP SIGNATURE----- commit b64cf874c3557a0f3547bd83b3ff6 Merge: 4a447f7... a6b4c97... Author: Scott Chacon Date: Sun Feb 8 19:02: Merge branch 'experiment' -a -s -m $ git tag v1.4-lw $ git tag v0.1 v1.3 v1.4 v1.4-lw v1.5 git show $ git show v1.4-lw commit b64cf874c3557a0f3547bd83b3ff6 Merge: 4a447f7... a6b4c97... Author: Scott Chacon <schacon@ge .com> Date: Sun Feb 8 19:02: Merge branch 'experiment'

52 git tag -v [tag-name] verify $ git tag -v v object babd8ee7ea23e6a5c392bb739348b1eb61 type commit tag v tagger Junio C Hamano <junkio@cox.net> GIT Minor fixes since 1.4.2, including git-mv and git-http with alternates. gpg: Signature made Wed Sep 13 02:08: PDT using DSA key ID F3119B9A gpg: Good signature from "Junio C Hamano <junkio@cox.net>" gpg: aka "[jpeg image of size 1513]" Primary key fingerprint: A E066 C9A7 4A7D C0C6 D9A4 F311 9B9A gpg: Signature made Wed Sep 13 02:08: PDT using DSA key ID F3119B9A gpg: Can't check signature: public key not found error: could not verify the tag 'v ' $ git log --pretty=oneline b64cf874c3557a0f3547bd83b3ff6 Merge branch 'experiment' a6b4c97498bd301d84096da251c98a07c7723e65 beginning write support 0d52aaab da7686c15f77a3d64d one more thing 6d52a271eda dd79daabbc4d9b6008e Merge branch 'experiment' 0b7434d86859cc7b8c3d5e1dddfed66ff742fcbc added a commit function 4682c bdd616e23b64b0857d832627b added a todo file 166ae0c4d3f420721acbb115cc33848dfcc2121a started write support 9fceb02d0ae598e95dc970b74767f19372d61af8 updated rakefile 964f16d36dfccde844893cac5b347e7b3d44abbc commit the todo 8a5cbc430f1a9c3d00faaeffd a updated readme

53 $ git tag -a v1.2 9fceb02 $ git tag v0.1 v1.2 v1.3 v1.4 v1.4-lw v1.5 $ git show v1.2 tag v1.2 Tagger: Scott Chacon <schacon@ge .com> Date: Mon Feb 9 15:32: version 1.2 commit 9fceb02d0ae598e95dc970b74767f19372d61af8 Author: Magnus Chacon <mchacon@ge .com> Date: Sun Apr 27 20:43: updated rakefile git push git push origin [tagname] $ git push origin v1.5 Counting objects: 50, done. Compressing objects: 100% (38/38), done. Writing objects: 100% (44/44), 4.56 KiB, done. Total 44 (delta 18), reused 8 (delta 1) To git@github.com:schacon/simplegit.git * [new tag] v1.5 -> v1.5

54 --tags $ git push origin --tags Counting objects: 50, done. Compressing objects: 100% (38/38), done. Writing objects: 100% (44/44), 4.56 KiB, done. Total 44 (delta 18), reused 8 (delta 1) To git@github.com:schacon/simplegit.git * [new tag] v0.1 -> v0.1 * [new tag] v1.2 -> v1.2 * [new tag] v1.4 -> v1.4 * [new tag] v1.4-lw -> v1.4-lw * [new tag] v1.5 -> v1.5 contrib/completion git-completion.bash cp gitcompletion.bash ~/.git-completion.bash.bashrc source ~/.git-completion.bash /opt/local/ etc/bash_completion.d /etc/bash_completion.d/

55 $ git co<tab><tab> commit config m<tab> git commit git log $ git log --s<tab> --shortstat --since= --src-prefix= --stat --summary git config $ git config --global alias.co checkout $ git config --global alias.br branch $ git config --global alias.ci commit $ git config --global alias.st status git commit git ci $ git config --global alias.unstage 'reset HEAD --' $ git unstage filea $ git reset HEAD filea last

56 $ git config --global alias.last 'log -1 HEAD' $ git last commit 66938dae3329c7aebe598c2246a8e6af90d04646 Author: Josh Goebel <dreamer3@example.com> Date: Tue Aug 26 19:48: test for current head Signed-off-by: Scott Chacon <schacon@example.com>! git visual gitk $ git config --global alias.visual '!gitk'

57 $ git add README test.rb LICENSE $ git commit -m 'initial commit of my project' git commit

58 git branch

59 $ git branch testing git branch git checkout $ git checkout testing $ vim test.rb $ git commit -a -m 'made a change'

60 git checkout $ git checkout master

61 $ vim test.rb $ git commit -a -m 'made other changes' branch checkout parent

62 git checkout -b $ git checkout -b iss53 Switched to a new branch 'iss53' $ git branch iss53 $ git checkout iss53 iss53 HEAD iss53 $ vim index.html $ git commit -a -m 'added a new footer [issue 53]'

63 iss53 master master $ git checkout master Switched to branch 'master' hotfix $ git checkout -b hotfix Switched to a new branch 'hotfix' $ vim index.html $ git commit -a -m 'fixed the broken address' [hotfix 3a0874c] fixed the broken address 1 files changed, 1 deletion(-) master git merge

64 $ git checkout master $ git merge hotfix Updating f42c576..3a0874c Fast-forward README 1-1 file changed, 1 deletion(-) master hotfix master master hotfix master hotfix git branch -d $ git branch -d hotfix

65 Deleted branch hotfix (was 3a0874c). $ git checkout iss53 Switched to branch 'iss53' $ vim index.html $ git commit -a -m 'finished the new footer [issue 53]' [iss53 ad82d7a] finished the new footer [issue 53] 1 file changed, 1 insertion(+) hotfix iss53 git merge master iss53 iss53 iss53 master master hotfix master git merge $ git checkout master $ git merge iss53 Auto-merging README Merge made by the 'recursive' strategy. README file changed, 1 insertion(+) hotfix master iss53

66 master iss53 $ git branch -d iss53

67 hotfix $ git merge iss53 Auto-merging index.html CONFLICT (content): Merge conflict in index.html Automatic merge failed; fix conflicts and then commit the result. git status $ git status On branch master You have unmerged paths. (fix conflicts and run "git commit") Unmerged paths: (use "git add <file>..." to mark resolution) both modified: index.html no changes added to commit (use "git add" and/or "git commit -a") <<<<<<< HEAD <div id="footer">contact : .support@github.com</div> ======= <div id="footer"> please contact us at support@github.com </div> >>>>>>> iss53 ======= HEAD master merge iss53 <div id="footer"> please contact us at .support@github.com </div>

68 <<<<<<< ======= >>>>>>> git add git mergetool $ git mergetool This message is displayed because 'merge.tool' is not configured. See 'git mergetool --tool-help' or 'git help config' for more details. 'git mergetool' will now attempt to use one of the following tools: opendiff kdiff3 tkdiff xxdiff meld tortoisemerge gvimdiff diffuse diffmerge ecmerge p4merge araxis bc3 Merging: index.html Normal merge conflict for 'index.html': {local}: modified file {remote}: modified file Hit return to start merge resolution tool (opendiff): opendiff git status $ git status On branch master Changes to be committed: (use "git reset HEAD <file>..." to unstage) modified: index.html git commit Merge branch 'iss53' Conflicts: index.html

69 # # It looks like you may be committing a merge. # If this is not correct, please remove the file #.git/merge_head # and try again. # git branch $ git branch iss53 * master testing master * master git branch -v $ git branch -v iss53 93b412c fix javascript issue * master 7a98805 Merge branch 'iss53' testing 782fd34 add scott to the author list in the readmes --merged -- no-merged git branch --merged $ git branch --merged iss53 * master

70 iss53 * git branch -d git branch --no-merged $ git branch --no-merged testing git branch -d $ git branch -d testing error: The branch 'testing' is not fully merged. If you are sure you want to delete it, run 'git branch -D testing'. -D master develop next master iss53 proposed pu next master

71 iss53 hotfix master iss91 iss91v2 master iss91v2 master dumbidea iss91v2 dumbidea iss91

72 ( 远程仓库名 )/( 分支名 ) origin master origin/master iss53 iss53 origin/iss53 git.ourcompany.com origin

73 master origin/master master origin master origin master master git.ourcompany.com master origin/master git fetch origin origin git.ourcompany.com origin/master git.team1.ourcompany.com

74 git remote add teamone git fetch teamone origin teamone/master teamone master 31b8e

75 serverfix git push ( 远程仓库名 ) ( 分支名 ) $ git push origin serverfix Counting objects: 20, done. Compressing objects: 100% (14/14), done. Writing objects: 100% (15/15), 1.74 KiB, done. Total 15 (delta 5), reused 0 (delta 0) To git@github.com:schacon/simplegit.git * [new branch] serverfix -> serverfix serverfix refs/heads/serverfix:refs/ heads/serverfix refs/heads/ git push origin serverfix:serverfix awesomebranch git push origin serverfix:awesomebranch origin/serverfix serverfix

76 $ git fetch origin remote: Counting objects: 20, done. remote: Compressing objects: 100% (14/14), done. remote: Total 15 (delta 5), reused 0 (delta 0) Unpacking objects: 100% (15/15), done. From git@github.com:schacon/simplegit * [new branch] serverfix -> origin/serverfix fetch serverfix origin/serverfix git merge origin/serverfix serverfix $ git checkout -b serverfix origin/serverfix Branch serverfix set up to track remote branch serverfix from origin. Switched to a new branch 'serverfix' serverfix origin/serverfix checkout git push git pull master origin/master git push git pull origin master git checkout -b [ 分支名 ] [ 远程名 ]/[ 分支名 ] --track $ git checkout --track origin/serverfix Branch serverfix set up to track remote branch serverfix from origin. Switched to a new branch 'serverfix'

77 $ git checkout -b sf origin/serverfix Branch sf set up to track remote branch serverfix from origin. Switched to a new branch 'sf' sf origin/serverfix master git push [ 远程名 ] :[ 分支名 ] serverfix $ git push origin :serverfix To git@github.com:schacon/simplegit.git - [deleted] serverfix git push [ 远程名 ] [ 本地分支 ]:[ 远程分支 ] [ 本地分支 ] [ 远程分支 ] merge rebase rebase

78 merge rebase $ git checkout experiment $ git rebase master First, rewinding head to replay your work on top of it... Applying: added staged command experiment master experiment master master

79 origin/master server client server server master server master git rebase --onto master

80 $ git rebase --onto master server client client client server master client server client master $ git checkout master $ git merge client server server master server git rebase [ 主分支 ] [ 特性分支 ] server master

81 $ git rebase master server server master master $ git checkout master $ git merge server client server $ git branch -d client $ git branch -d server git rebase

82 git push --force git log

83

84

85 .git

86 $ git clone /opt/git/project.git $ git clone file:///opt/git/project.git file:// file:// file:// $ git remote add local_proj /opt/git/project.git git pull /home/john/project

87 $ git clone $ git clone git-daemon-export-ok

88 git:// xinetd post-update $ cd /var/www/htdocs/ $ git clone --bare /path/to/git_project gitproject.git $ cd gitproject.git $ mv hooks/post-update.sample hooks/post-update $ chmod a+x hooks/post-update post-update git updateserver-info $ git clone /var/www/htdocs docs/howto/setup-git-server-over-http.txt

89 --bare.git $ git clone --bare my_project my_project.git Cloning into bare repository 'my_project.git'... done. clone git init git fetch git init my_project.git $ cp -Rf my_project/.git my_project.git git.example.com /opt/git

90 $ scp -r my_project.git /opt/git $ git clone user@git.example.com:/opt/git/my_project.git /opt/git/my_project.git git init --shared --shared g+sx rws $ ssh user@git.example.com $ cd /opt/git/my_project.git $ git init --bare --shared

91 adduser git git ~/.ssh/authorized_keys git ~/.ssh $ cd ~/.ssh $ ls authorized_keys2 id_dsa known_hosts config id_dsa.pub something something.pub something id_dsa id_rsa.pub.ssh ssh-keygen $ ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/Users/schacon/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /Users/schacon/.ssh/id_rsa. Your public key has been saved in /Users/schacon/.ssh/id_rsa.pub. The key fingerprint is: 43:c5:5b:5f:b1:f1:50:43:ad:20:a6:92:6a:1f:9a:3a schacon@agadorlaptop.local.ssh/id_rsa.pub

92 $ cat ~/.ssh/id_rsa.pub ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAklOUpkDHrfHY17SbrmTIpNLTGK9Tjom/BWDSU GPl+nafzlHDTYW7hdI4yZ5ew18JH4JW9jbhUFrviQzM7xlELEVf4h9lFX5QVkbPppSwg0cda3 Pbv7kOdJ/MTyBlWXFCR+HAo3FXRitBqxiX1nKhXpHAZsMciLq8V6RjsNAQwdsdMFvSlVK/7XA t3faojoasncm1q9x5+3v0ww68/eifmb1zuufljqjkprrx88xypndvjynby6vw/pb0rwert/en mz+aw4ozpntpi89zpmvmluayrd2ce86z/il8b+gw3r3+1nkatmikjn2so1d01qratlmqvssbx NrRFi9wrf+M7Q== authorized_keys.ssh $ sudo adduser git $ su git $ cd $ mkdir.ssh authorized_keys $ cat /tmp/id_rsa.john.pub ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCB007n/ww+ouN4gSLKssMxXnBOvf9LGt4L ojg6rs6hpb09j9r/t17/x4lhja0f3fr1rp6kybrswj2athgw6hxlm9/5zytk6ztg3rpkk+4k Yjh6541NYsnEAZuXz0jTTyAUfrtU3Z5E003C4oxOj6H0rfIF1kKI9MAQLMdpGW1GYEIgS9Ez Sdfd8AcCIicTDWbqLAcU4UpkaX8KyGlLwsNuuGztobF8m72ALC/nLF6JLtPofwFBlgc+myiv O7TCUSBdLQlgMVOFq1I2uPWQOkOWQAHukEOmfjy2jctxSDBQ220ymjaNsHT4kgtZg2AYYgPq dav8jggjicuvax2t9va5 gsg-keypair authorized_keys $ cat /tmp/id_rsa.john.pub >> ~/.ssh/authorized_keys $ cat /tmp/id_rsa.josie.pub >> ~/.ssh/authorized_keys $ cat /tmp/id_rsa.jessica.pub >> ~/.ssh/authorized_keys

93 --bare git init $ cd /opt/git $ mkdir project.git $ cd project.git $ git --bare init gitserver git gitserver # 在 John 的电脑上 $ cd myproject $ git init $ git add. $ git commit -m 'initial commit' $ git remote add origin git@gitserver:/opt/git/project.git $ git push origin master $ git clone git@gitserver:/opt/git/project.git $ cd project $ vim README $ git commit -am 'fix for the README file' $ git push origin master git-shell git git /etc/passwd $ sudo vim /etc/passwd

94 git:x:1000:1000::/home/git:/bin/sh bin/sh /usr/bin/git-shell which git-shell git:x:1000:1000::/home/git:/usr/bin/git-shell git $ ssh git@gitserver fatal: What do you think I am? A shell? Connection to gitserver closed. post-update /opt/git $ cd project.git $ mv hooks/post-update.sample hooks/post-update $ chmod a+x hooks/post-update post-update $ cat.git/hooks/post-update #!/bin/sh # # An example hook script to prepare a packed repository for use over # dumb transports.

95 # # To enable this hook, rename this file to "post-update". # exec git-update-server-info git-update-server-info.gitserver <VirtualHost *:80> ServerName git.gitserver DocumentRoot /opt/git <Directory /opt/git/> Order allow, deny allow from all </Directory> </VirtualHost> /opt/git www-data $ chgrp -R www-data /opt/git $ git clone http: //git.kernel.org

96 lighttpd webrick lighttpd git instaweb webrick git instaweb --httpd $ git instaweb --httpd=webrick [ :02:21] INFO WEBrick [ :02:21] INFO ruby ( ) [universal-darwin9.0] --stop $ git instaweb --httpd=webrick --stop apt yum gitweb $ git clone git://git.kernel.org/pub/scm/git/git.git $ cd git/ $ make GITWEB_PROJECTROOT="/opt/git" \ prefix=/usr gitweb $ sudo cp -Rf gitweb /var/www/ GITWEB_PROJECTROOT

97 <VirtualHost *:80> ServerName gitserver DocumentRoot /var/www/gitweb <Directory /var/www/gitweb> Options ExecCGI +FollowSymLinks +SymLinksIfOwnerMatch AllowOverride All order allow,deny Allow from all AddHandler cgi-script cgi DirectoryIndex gitweb.cgi </Directory> </VirtualHost> authorized_keys authorized_keys $ apt-get install python-setuptools $ git clone $ cd gitosis $ sudo python setup.py install

98 /home/git /opt/git $ ln -s /opt/git /home/git/repositories authorized_keys $ mv /home/git/.ssh/authorized_keys /home/git/.ssh/ak.bak git git-shell authorized_keys /etc/ passwd git:x:1000:1000::/home/git:/usr/bin/git-shell git:x:1000:1000::/home/git:/bin/sh gitosis-init $ sudo -H -u git gitosis-init < /tmp/id_dsa.pub Initialized empty Git repository in /opt/git/gitosis-admin.git/ Reinitialized existing Git repository in /opt/git/gitosis-admin.git/ post-update $ sudo chmod 755 /opt/git/gitosis-admin.git/hooks/post-update

99 $ ssh PTY allocation request failed on channel 0 ERROR:gitosis.serve.main:Need SSH_ORIGINAL_COMMAND in environment. Connection to gitserver closed. # 在你本地计算机上 $ git clone git@gitserver:gitosis-admin.git gitosis-admin $ cd gitosis-admin $ find../gitosis.conf./keydir./keydir/scott.pub gitosis.conf keydir keydir scott.pub gitosis-init gitosis.conf gitosis-admin $ cat gitosis.conf [gitosis] [group gitosis-admin] members = scott writable = gitosis-admin scott gitosis-admin mobile iphone_project

100 [group mobile] members = scott writable = iphone_project gitosis-admin $ git commit -am 'add iphone_project and mobile group' [master 8962da8] add iphone_project and mobile group 1 file changed, 4 insertions(+) $ git push origin master Counting objects: 5, done. Compressing objects: 100% (3/3), done. Writing objects: 100% (3/3), 272 bytes 0 bytes/s, done. Total 3 (delta 0), reused 0 (delta 0) To git@gitserver:gitosis-admin.git fb27aec..8962da8 master -> master iphone_project $ git remote add origin git@gitserver:iphone_project.git $ git push origin master Initialized empty Git repository in /opt/git/iphone_project.git/ Counting objects: 3, done. Writing objects: 100% (3/3), 230 bytes 0 bytes/s, done. Total 3 (delta 0), reused 0 (delta 0) To git@gitserver:iphone_project.git * [new branch] master -> master ~/.ssh/authorized_keys keydir gitosis.conf $ cp /tmp/id_rsa.john.pub keydir/john.pub $ cp /tmp/id_rsa.josie.pub keydir/josie.pub $ cp /tmp/id_rsa.jessica.pub keydir/jessica.pub

101 iphone_project [group mobile] members = scott john josie jessica writable = iphone_project [group mobile] members = scott josie jessica writable = iphone_project [group mobile_ro] members = john readonly = [group mobile_committers] members = scott josie jessica [group mobile] members writable = iphone_project [group mobile_2] members john writable = another_iphone_project loglevel=debug [gitosis] /home/git/.gitosis.conf gitosis.conf gitosis-admin

102 sshd httpd git gitserver git ~/.ssh/id_rsa.pub ssh-keygen <yourname>.pub scott.pub $ git clone git://github.com/sitaramc/gitolite $ gitolite/install -ln # assumes $HOME/bin exists and is in your $PATH $ gitolite setup -pk $HOME/scott.pub gitolite-admin git clone git@gitserver:gitolite-admin gitolite-admin

103 gitolite-admin $ cd ~/gitolite-admin/ $ ls conf/ keydir/ $ find conf keydir -type f conf/gitolite.conf keydir/scott.pub $ cat conf/gitolite.conf repo gitolite-admin RW+ = scott repo testing RW+ gl-setup gitolite-admin alice.pub keydir = linux perl rakudo git gitolite = = scott = ashok = sitaram dilbert wally @interns

104 RW int$ RW eng- RW refs/tags/rc[0-9] RW+ RW RW+ refs/heads/ refs/ oss_repos repo gitolite RW+ = sitaram gitolite W + R RW RW+ - RW master integ - master integ RW+

105 repo foo - VREF/NAME/Makefile conf/example.conf refs/personal/<devname>/* doc/3-faq-tips-etc.mkd assignments/s[0-9][0-9]/a[0-9][0-9] $GL_WILDREPOS = 1; doc/4-wildcard-repositories.mkd RW+

106 hello scott, this is running gitolite3 v g on git R anu-wsd R entrans R W git-notes R W gitolite R W gitolite-admin R indic_web_input R shreelipi_converter doc/ git daemon --reuseaddr --base-path=/opt/git/ /opt/git/ --reuseaddr -- base-path /etc/event.d/local-git-daemon

107 start on startup stop on shutdown exec /usr/bin/git daemon \ --user=git --group=git \ --reuseaddr \ --base-path=/opt/git/ \ /opt/git/ respawn git-ro git-ro initctl start local-git-daemon xinetd sysvinit gitosis.conf [repo iphone_project] daemon = yes $ cd /path/to/project.git $ touch git-daemon-export-ok / etc/gitweb.conf

108 $projects_list = "/home/git/gitosis/projects.list"; $projectroot = "/home/git/repositories"; $export_ok = = ('git://gitserver'); gitweb repo [repo iphone_project] daemon = yes gitweb = yes grit github.com/grit github.com/ shacon/grit shacon

109

110 $ git init $ git add. $ git commit -m 'initial commit'

111 $ git remote add origin $ git push origin master

112

113 git log

114

115

116

117

118 Documentation/SubmittingPatches git diff --check X $ git diff --check lib/simplegit.rb:5: trailing whitespace. = File.expand_path(git_dir)XX lib/simplegit.rb:7: trailing whitespace. + XXXXXXXXXXX lib/simplegit.rb:26: trailing whitespace. + def command(git_cmd)xxxx git add --patch

119 本次更新的简要描述 (50 个字符以内 ) 如果必要, 此处展开详尽阐述 段落宽度限定在 72 个字符以内 某些情况下, 第一行的简要描述将用作邮件标题, 其余部分作为邮件正文 其间的空行是必要的, 以区分两者 ( 当然没有正文另当别论 ) 如果并在一起,rebase 这样的工具就可能会迷惑 另起空行后, 再进一步补充其他说明 - 可以使用这样的条目列举式 - 一般以单个空格紧跟短划线或者星号作为每项条目的起始符 每个条目间用一空行隔开 不过这里按自己项目的约定, 可以略作变化 git log --no-merges git clone git://git.kernel.org/pub/scm/git/git.git -m git commit... # John's Machine $ git clone john@githost:simplegit.git Initialized empty Git repository in /home/john/simplegit/.git/...

120 $ cd simplegit/ $ vim lib/simplegit.rb $ git commit -am 'removed invalid default value' [master 738ee87] removed invalid default value 1 files changed, 1 insertions(+), 1 deletions(-) # Jessica's Machine $ git clone jessica@githost:simplegit.git Initialized empty Git repository in /home/jessica/simplegit/.git/... $ cd simplegit/ $ vim TODO $ git commit -am 'add reset task' [master fbff5bc] add reset task 1 files changed, 1 insertions(+), 0 deletions(-) # Jessica's Machine $ git push origin master... To jessica@githost:simplegit.git 1edee6b..fbff5bc master -> master # John's Machine $ git push origin master To john@githost:simplegit.git! [rejected] master -> master (non-fast forward) error: failed to push some refs to 'john@githost:simplegit.git'

121 $ git fetch origin... From + 049d078...fbff5bc master -> origin/master origin/ master master $ git merge origin/master Merge made by recursive. TODO files changed, 1 insertions(+), 0 deletions(-) $ git push origin master... To john@githost:simplegit.git fbff5bc..72bbc59 master -> master

122 issue54 # Jessica's Machine $ git fetch origin... From jessica@githost:simplegit fbff5bc..72bbc59 master -> origin/master git log

123 $ git log --no-merges origin/master ^issue54 commit 738ee872852dfaa9d6634e0dea7a Author: John Smith Date: Fri May 29 16:01: removed invalid default value master origin/master master $ git checkout master Switched to branch "master" Your branch is behind 'origin/master' by 2 commits, and can be fast-forwarded. origin/master issue54 issue54 $ git merge issue54 Updating fbff5bc..4af4298 Fast forward README 1 + lib/simplegit.rb files changed, 6 insertions(+), 1 deletions(-) origin/master

124 $ git merge origin/master Auto-merging lib/simplegit.rb Merge made by recursive. lib/simplegit.rb files changed, 1 insertions(+), 1 deletions(-) master origin/master $ git push origin master... To jessica@githost:simplegit.git 72bbc c15 master -> master master origin/master

125 master featurea # Jessica's Machine $ git checkout -b featurea Switched to a new branch "featurea" $ vim lib/simplegit.rb $ git commit -am 'add limit to log function' [featurea ] add limit to log function 1 files changed, 1 insertions(+), 1 deletions(-) featurea master

126 $ git push origin featurea... To * [new branch] featurea -> featurea featurea featureb master # Jessica's Machine $ git fetch origin $ git checkout -b featureb origin/master Switched to a new branch "featureb" featureb $ vim lib/simplegit.rb $ git commit -am 'made the ls-tree function recursive' [featureb e5b0fdc] made the ls-tree function recursive 1 files changed, 1 insertions(+), 1 deletions(-) $ vim lib/simplegit.rb $ git commit -am 'add ls-files' [featureb ] add ls-files 1 files changed, 5 insertions(+), 0 deletions(-)

127 featurebee git fetch $ git fetch origin... From jessica@githost:simplegit * [new branch] featurebee -> origin/featurebee git merge $ git merge origin/featurebee Auto-merging lib/simplegit.rb Merge made by recursive. lib/simplegit.rb files changed, 4 insertions(+), 0 deletions(-) featureb featurebee $ git push origin featureb:featurebee... To jessica@githost:simplegit.git fba9af8..cd685d1 featureb -> featurebee featurea git fetch $ git fetch origin... From jessica@githost:simplegit aad881d featurea -> origin/featurea git log $ git log origin/featurea ^featurea commit aad881d154acdaeb2b6b18ea0e827ed8a6d671e6

128 Author: John Smith Date: Fri May 29 19:57: changed log output to 30 from 25 featurea $ git checkout featurea Switched to branch "featurea" $ git merge origin/featurea Updating aad881d Fast forward lib/simplegit.rb files changed, 9 insertions(+), 1 deletions(-) $ git commit -am 'small tweak' [featurea 774b3ed] small tweak 1 files changed, 1 insertions(+), 1 deletions(-) $ git push origin featurea... To jessica@githost:simplegit.git b3ed featurea -> featurea featurea featurebee

129

130 $ git clone (url) $ cd project $ git checkout -b featurea $ (work) $ git commit $ (work) $ git commit rebase -i git://githost/simplegit.git myfork $ git remote add myfork (url) $ git push myfork featurea git request-pull request-pull myfork $ git request-pull origin/master myfork The following changes since commit 1edee6b1d61823a2de3b09c160d7080b8d1b3a40: John Smith (1): added a new function

131 are available in the git repository at: git://githost/simplegit.git featurea Jessica Smith (2): add limit to log function change log output to 30 from 25 lib/simplegit.rb files changed, 9 insertions(+), 1 deletions(-) master origin/master master $ git checkout -b featureb origin/master $ (work) $ git commit $ git push myfork featureb $ ( maintainer) $ git fetch origin origin/master

132 $ git checkout featurea $ git rebase origin/master $ git push -f myfork featurea -f featurea featureav2 origin/master featurebv2 featureb $ git checkout -b featurebv2 origin/master $ git merge --no-commit --squash featureb $ (change implementation) $ git commit $ git push myfork featurebv2 --squash --nocommit featurebv2

133 $ git checkout -b topica $ (work) $ git commit $ (work) $ git commit git format-patch.patch $ git format-patch -M origin/master 0001-add-limit-to-log-function.patch 0002-changed-log-output-to-30-from-25.patch format-patch -M $ cat 0001-add-limit-to-log-function.patch From d704da8e76ca5c05c198e71a8 Mon Sep 17 00:00: From: Jessica Smith <jessica@example.com> Date: Sun, 6 Apr :17: Subject: [PATCH 1/2] add limit to log function Limit log functionality to the first lib/simplegit.rb files changed, 1 insertions(+), 1 deletions(-)

134 diff --git a/lib/simplegit.rb b/lib/simplegit.rb index 76f47bc..f9815f a/lib/simplegit.rb +++ b/lib/simplegit.rb -14,7 +14,7 class SimpleGit end def log(treeish = 'master') - command("git log #{treeish}") + command("git log -n 20 #{treeish}") end -- def ls_tree(treeish = 'master') rc1.20.g8c5b.dirty --- Limit log functionality to the first 20 Documentation/ SubmittingPatches ~/.gitconfig git config [imap] folder = "[Gmail]/Drafts" host = imaps://imap.gmail.com user = user@gmail.com pass = p4ssw0rd port = 993 sslverify = false imap:// s imaps:// git send- [Gmail]/Drafts

135 $ cat *.patch git imap-send Resolving imap.gmail.com... ok Connecting to [ ]: ok Logging in... sending 2 messages 100% (2/2) done git config ~/.gitconfig [send ] smtpencryption = tls smtpserver = smtp.gmail.com smtpuser = user@gmail.com smtpserverport = 587 git send- $ git send- *.patch 0001-added-limit-to-log-function.patch 0002-changed-log-output-to-30-from-25.patch Who should the s appear to be from? [Jessica Smith <jessica@example.com>] s will be sent from: Jessica Smith <jessica@example.com> Who should the s be sent to? jessica@example.com Message-ID to be used as In-Reply-To for the first ? y (mbox) Adding cc: Jessica Smith <jessica@example.com> from \line 'From: Jessica Smith <jessica@example.com>' OK. Log says: Sendmail: /usr/sbin/sendmail -i jessica@example.com From: Jessica Smith <jessica@example.com> To: jessica@example.com Subject: [PATCH 1/2] added limit to log function

136 Date: Sat, 30 May :29: Message-Id: X-Mailer: git-send rc1.20.g8c5b.dirty In-Reply-To: <y> References: <y> Result: OK format-patch ruby_client sc/ruby_client sc $ git branch sc/ruby_client master checkout -b $ git checkout -b sc/ruby_client master git apply git am

137 git diff diff git apply /tmp/patch-ruby-client.patch $ git apply /tmp/patch-ruby-client.patch patch -p1 git diff patch git apply patch git apply patch git apply --check $ git apply --check 0001-seeing-if-this-helps-the-gem.patch error: patch failed: ticgit.gemspec:1 error: ticgit.gemspec: patch does not apply format-patch format-patch diff git apply format-patch git am git am From d704da8e76ca5c05c198e71a8 Mon Sep 17 00:00: From: Jessica Smith <jessica@example.com> Date: Sun, 6 Apr :17: Subject: [PATCH 1/2] add limit to log function Limit log functionality to the first 20

138 format-patch git send- git am git am format-patch git am $ git am 0001-limit-log-function.patch Applying: add limit to log function From Date Subject $ git log --pretty=fuller -1 commit 6c5e70b984a60b3cecd395edd5b48a7575bf58e0 Author: Jessica Smith <jessica@example.com> AuthorDate: Sun Apr 6 10:17: Commit: Scott Chacon <schacon@gmail.com> CommitDate: Thu Apr 9 09:19: add limit to log function Limit log functionality to the first 20 Commit Author git am $ git am 0001-seeing-if-this-helps-the-gem.patch Applying: seeing if this helps the gem error: patch failed: ticgit.gemspec:1 error: ticgit.gemspec: patch does not apply Patch failed at When you have resolved this problem run "git am --resolved". If you would prefer to skip this patch, instead run "git am --skip". To restore the original branch and stop patching run "git am --abort". git am --resolved

139 $ (fix the file) $ git add ticgit.gemspec $ git am --resolved Applying: seeing if this helps the gem -3 $ git am seeing-if-this-helps-the-gem.patch Applying: seeing if this helps the gem error: patch failed: ticgit.gemspec:1 error: ticgit.gemspec: patch does not apply Using index info to reconstruct a base tree... Falling back to patching base and 3-way merge... No changes -- Patch already applied. -3 am - i $ git am -3 -i mbox Commit Body is: seeing if this helps the gem Apply? [y]es/[n]o/[e]dit/[v]iew patch/[a]ccept all ruby-client

140 $ git remote add jessica git://github.com/jessica/myproject.git $ git fetch jessica $ git checkout -b rubyclient jessica/ruby-client -3 git pull $ git pull git://github.com/onetimeguy/project.git From git://github.com/onetimeguy/project * branch HEAD -> FETCH_HEAD Merge made by recursive. contrib --not master $ git log contrib --not master commit 5b6235bd efc4d73316f0a68d484f118 Author: Scott Chacon <schacon@gmail.com> Date: Fri Oct 24 09:53: seeing if this helps the gem commit 7482e0d16d04bea79d0dba8988cc78df655f16a0 Author: Scott Chacon <schacon@gmail.com>

141 Date: Mon Oct 22 19:38: updated the gemspec to hopefully work better git log -p $ git diff master master diff master master master master $ git merge-base contrib master 36c7dba2c95e6bbb78dfa822519ecfec6e1ca649 $ git diff 36c7db... diff... $ git diff master...contrib master

142 ruby_client php_client ruby_client php_client master develop ruby_client develop C8 develop master C8 develop

143 master next pu maint

144 next pu master next mastermaster next pu master maint develop master

145 e43a6 $ git cherry-pick e43a6fd3e94888d76779ad79fb568ed180e5fcdf Finished one cherry-pick. [master]: created a0a41a9: "More friendly message when locking the index fails." 3 files changed, 17 insertions(+), 3 deletions(-) e43a6

146 $ git tag -s v1.5 -m 'my signed 1.5 tag' You need a passphrase to unlock the secret key for user: "Scott Chacon <schacon@gmail.com>" 1024-bit DSA key, ID F721C45A, created gpg --list-keys $ gpg --list-keys /Users/schacon/.gnupg/pubring.gpg pub 1024D/F721C45A [expires: ] uid Scott Chacon <schacon@gmail.com> sub 2048g/45D [expires: ] git hash-object $ gpg -a --export F721C45A git hash-object -w --stdin 659ef797d181633c87ec71ac3f9ba29fe5775b92 $ git tag -a maintainer-pgp-pub 659ef797d181633c87ec71ac3f9ba29fe5775b92 git push --tagsmaintainer-pgp-pub $ git show maintainer-pgp-pub gpg --import git show <tag>

147 git describe $ git describe master v1.6.2-rc1-20-g8c5b85c git --version describe git describe-a-s git describe checkoutshow git describe git archive $ git archive master --prefix='project/' gzip > `git describe master`.tar.gz $ ls *.tar.gz v1.6.2-rc1-20-g8c5b85c.tar.gz git archive--format=zip $ git archive master --prefix='project/' --format=zip > `git describe master`.zip git shortlog

148 $ git shortlog --no-merges master --not v1.0.1 Chris Wanstrath (8): Add support for annotated tags to Grit::Tag Add packed-refs annotated tag support. Add Grit::Commit#to_patch Update version and History.txt Remove stray `puts` Make ls_tree ignore nils Tom Preston-Werner (4): fix dates in history dynamic version method Version bump to Regenerated gemspec for version 1.0.2

149 git log $ git log commit bc047d87bf7eac ae793478c50d3 Author: Scott Chacon <schacon@gmail.com> Date: Fri Jan 2 18:32: fixed refs handling, added gc auto, updated tests

150 commit d921970aadf03b3cf0e71becdaab3147ba71cdef Merge: 1c002dd... 35cfb2b... Author: Scott Chacon Date: Thu Dec 11 15:08: Merge commit 'phedders/rdocs' commit 1c002dd4b536e7479fe34593e72e6c6c1819e53b Author: Scott Chacon Date: Thu Dec 11 14:58: added some blame and merge stuff 1c002dd... git show $ git show 1c002dd4b536e7479fe34593e72e6c6c1819e53b $ git show 1c002dd4b536e7479f $ git show 1c002d --abbrev-commit git log $ git log --abbrev-commit --pretty=oneline ca82a6d changed the version number 085bb3b removed unnecessary test code a11bef0 first commit 2 80

151 p = (n(n-1)/2) * (1/2ˆ160)) topic1 ca82a6d $ git show ca82a6dff817ec66f a $ git show topic1 rev-parse rev-parse rev-parse $ git rev-parse topic1 ca82a6dff817ec66f a git reflog $ git reflog b... HEAD@{0}: commit: fixed refs handling, added gc auto, updated d HEAD@{1}: merge phedders/rdocs: Merge made by recursive. 1c002dd... HEAD@{2}: commit: added some blame and merge stuff 1c HEAD@{3}: rebase -i (squash): updating HEAD 95df HEAD@{4}: commit: # This is a combination of two commits. 1c HEAD@{5}: rebase -i (squash): updating HEAD 7e05da5... HEAD@{6}: rebase -i (pick): updating HEAD

152 @{n} $ git show HEAD@{5} master $ git show master@{yesterday} git log git log -g $ git log -g master commit bc047d87bf7eac ae793478c50d3 Reflog: master@{0} (Scott Chacon <schacon@gmail.com>) Reflog message: commit: fixed refs handling, added gc auto, updated Author: Scott Chacon <schacon@gmail.com> Date: Fri Jan 2 18:32: fixed refs handling, added gc auto, updated tests commit d921970aadf03b3cf0e71becdaab3147ba71cdef Reflog: master@{1} (Scott Chacon <schacon@gmail.com>) Reflog message: merge phedders/rdocs: Merge made by recursive. Author: Scott Chacon <schacon@gmail.com> Date: Thu Dec 11 15:08: Merge commit 'phedders/rdocs' git show HEAD@{2.months.ago} ˆ

153 $ git log --pretty=format:'%h %s' --graph * b fixed refs handling, added gc auto, updated tests * d Merge commit 'phedders/rdocs' \ * 35cfb2b Some rdoc changes * 1c002dd added some blame and merge stuff / * 1c36188 ignore *.gem * 9b29157 add open3_detach to gemspec file list HEADˆ $ git show HEAD^ commit d921970aadf03b3cf0e71becdaab3147ba71cdef Merge: 1c002dd... 35cfb2b... Author: Scott Chacon <schacon@gmail.com> Date: Thu Dec 11 15:08: Merge commit 'phedders/rdocs' ˆ d921970ˆ2 $ git show d921970^ commit 1c002dd4b536e7479fe34593e72e6c6c1819e53b Author: Scott Chacon <schacon@gmail.com> Date: Thu Dec 11 14:58: added some blame and merge stuff $ git show d921970^2 commit 35cfb2b795a55793d7cc56a6cc2060b4bb Author: Paul Hedderly <paul+git@mjr.org> Date: Wed Dec 10 22:22: Some rdoc changes ~ HEAD~ HEADˆ HEAD~2

154 HEAD~3 $ git show HEAD~3 commit 1c afb5fbcbea25b7c013f4e b8d Author: Tom Preston-Werner <tom@mojombo.com> Date: Fri Nov 7 13:47: ignore *.gem HEADˆˆˆ $ git show HEAD^^^ commit 1c afb5fbcbea25b7c013f4e b8d Author: Tom Preston-Werner <tom@mojombo.com> Date: Fri Nov 7 13:47: ignore *.gem HEAD~3ˆ2 master..experiment

155 $ git log master..experiment D C master experiment experiment..master master experiment $ git log experiment..master F E experiment $ git log origin/master..head origin git push origin/mastergit log origin/master..head git log origin/master.. ˆ --not $ git log refa..refb $ git log ^refa refb $ git log refb --not refa refa refb refc $ git log refa refb ^refc $ git log refa refb --not refc

156 masterexperiment $ git log master...experiment F E D C log log --left-right $ git log --left-right master...experiment < F < E > D > C git add-i--interactive $ git add -i staged unstaged path 1: unchanged +0/-1 TODO 2: unchanged +1/-1 index.html

157 3: unchanged +5/-1 lib/simplegit.rb *** Commands *** 1: status 2: update 3: revert 4: add untracked 5: patch 6: diff 7: quit 8: help What now> git status What now>2u What now> 2 staged unstaged path 1: unchanged +0/-1 TODO 2: unchanged +1/-1 index.html 3: unchanged +5/-1 lib/simplegit.rb Update>> Update>> 1,2 staged unstaged path * 1: unchanged +0/-1 TODO * 2: unchanged +1/-1 index.html 3: unchanged +5/-1 lib/simplegit.rb Update>> * update>> Update>> updated 2 paths *** Commands ***

158 1: status 2: update 3: revert 4: add untracked 5: patch 6: diff 7: quit 8: help What now> 1 staged unstaged path 1: +0/-1 nothing TODO 2: +1/-1 nothing index.html 3: unchanged +5/-1 lib/simplegit.rb 3r *** Commands *** 1: status 2: update 3: revert 4: add untracked 5: patch 6: diff 7: quit 8: help What now> 3 staged unstaged path 1: +0/-1 nothing TODO 2: +1/-1 nothing index.html 3: unchanged +5/-1 lib/simplegit.rb Revert>> 1 staged unstaged path * 1: +0/-1 nothing TODO 2: +1/-1 nothing index.html 3: unchanged +5/-1 lib/simplegit.rb Revert>> [enter] reverted one path *** Commands *** 1: status 2: update 3: revert 4: add untracked 5: patch 6: diff 7: quit 8: help What now> 1 staged unstaged path 1: unchanged +0/-1 TODO 2: +1/-1 nothing index.html 3: unchanged +5/-1 lib/simplegit.rb 6d git diff --cached

159 *** Commands *** 1: status 2: update 3: revert 4: add untracked 5: patch 6: diff 7: quit 8: help What now> 6 staged unstaged path 1: +1/-1 nothing index.html Review diff>> 1 diff --git a/index.html b/index.html index 4d f a/index.html ,7 Date Finder <p id="out">...</p> -<div id="footer">contact : support@github.com</div> +<div id="footer">contact : .support@github.com</div> <script type="text/javascript"> 5p diff --git a/lib/simplegit.rb b/lib/simplegit.rb index dd5ecc e a/lib/simplegit.rb ,7 class SimpleGit end def log(treeish = 'master') - command("git log -n 25 #{treeish}") + command("git log -n 30 #{treeish}") end def blame(path) Stage this hunk [y,n,a,d,/,j,j,g,e,?]?

160 ? Stage this hunk [y,n,a,d,/,j,j,g,e,?]?? y - stage this hunk n - do not stage this hunk a - stage this and all the remaining hunks in the file d - do not stage this hunk nor any of the remaining hunks in the file g - select a hunk to go to / - search for a hunk matching the given regex j - leave this hunk undecided, see next undecided hunk J - leave this hunk undecided, see next hunk k - leave this hunk undecided, see previous undecided hunk K - leave this hunk undecided, see previous hunk s - split the current hunk into smaller hunks e - manually edit the current hunk? - print help yn What now> 1 staged unstaged path 1: unchanged +0/-1 TODO 2: +1/-1 nothing index.html 3: +1/-1 +4/-0 lib/simplegit.rb git commit git add -pgit add --patch git stash

161 git status $ git status # On branch master # Changes to be committed: # (use "git reset HEAD <file>..." to unstage) # # modified: index.html # # Changes not staged for commit: # (use "git add <file>..." to update what will be committed) # # modified: lib/simplegit.rb # git stash $ git stash Saved working directory and index state \ "WIP on master: 049d078 added the index file" HEAD is now at 049d078 added the index file (To restore them type "git stash apply") $ git status # On branch master nothing to commit (working directory clean) git stash list $ git stash list stash@{0}: WIP on master: 049d078 added the index file stash@{1}: WIP on master: c Revert "added file_size" stash@{2}: WIP on master: 21d80a5... added number to log

162 git stash apply git stash apply $ git stash apply # On branch master # Changes not staged for commit: # (use "git add <file>..." to update what will be committed) # # modified: index.html # modified: lib/simplegit.rb # git stash apply --index $ git stash apply --index # On branch master # Changes to be committed: # (use "git reset HEAD <file>..." to unstage) # # modified: index.html # # Changes not staged for commit: # (use "git add <file>..." to update what will be committed) # # modified: lib/simplegit.rb # git stash drop $ git stash list stash@{0}: WIP on master: 049d078 added the index file stash@{1}: WIP on master: c Revert "added file_size"

163 WIP on master: 21d80a5... added number to log $ git stash drop stash@{0} Dropped stash@{0} (364e91f3f268f0900bc3ee613f9f733e82aaed43) git stash pop stash unapply $ git stash show -p stash@{0} git apply -R $ git stash show -p git apply -R stash-unapply $ git config --global alias.stash-unapply '!git stash show -p git apply -R' $ git stash $ #... work work work $ git stash-unapply git stash branch $ git stash branch testchanges Switched to a new branch "testchanges" # On branch testchanges # Changes to be committed:

164 # (use "git reset HEAD <file>..." to unstage) # # modified: index.html # # Changes not staged for commit: # (use "git add <file>..." to update what will be committed) # # modified: lib/simplegit.rb # Dropped refs/stash@{0} (f0dfc4d5dc332d1cee34a634182e168c4efc3359) $ git commit --amend git add git rm git commit --amend

165 git rebase-i git rebase -i HEAD~2HEAD~3~3 $ git rebase -i HEAD~3 HEAD~3..HEAD pick f7f3f6d changed my name a bit pick e updated README formatting and added blame pick a5f4a0d added cat-file # Rebase 710f0f8..a5f4a0d onto 710f0f8 # # Commands: # p, pick = use commit # e, edit = use commit, but stop for amending # s, squash = use commit, but meld into previous commit # # If you remove a line here THAT COMMIT WILL BE LOST. # However, if you remove everything, the rebase will be aborted. # log log $ git log --pretty=format:"%h %s" HEAD~3..HEAD a5f4a0d added cat-file e updated README formatting and added blame f7f3f6d changed my name a bit

166 HEAD~3 edit f7f3f6d changed my name a bit pick e updated README formatting and added blame pick a5f4a0d added cat-file $ git rebase -i HEAD~3 Stopped at 7482e0d... updated the gemspec to hopefully work better You can amend the commit now, with git commit --amend Once you re satisfied with your changes, run git rebase --continue $ git commit --amend $ git rebase --continue

167 pick f7f3f6d changed my name a bit pick e updated README formatting and added blame pick a5f4a0d added cat-file pick e updated README formatting and added blame pick f7f3f6d changed my name a bit e f7f3f6d # # Commands: # p, pick = use commit # e, edit = use commit, but stop for amending # s, squash = use commit, but meld into previous commit # # If you remove a line here THAT COMMIT WILL BE LOST. # However, if you remove everything, the rebase will be aborted. # pick f7f3f6d changed my name a bit squash e updated README formatting and added blame squash a5f4a0d added cat-file

168 # This is a combination of 3 commits. # The first commit's message is: changed my name a bit # This is the 2nd commit message: updated README formatting and added blame # This is the 3rd commit message: added cat-file rebase -i pick f7f3f6d changed my name a bit edit e updated README formatting and added blame pick a5f4a0d added cat-file f7f3f6d e git reset HEADˆ git rebase -- continue $ git reset HEAD^ $ git add README $ git commit -m 'updated README formatting' $ git add lib/simplegit.rb $ git commit -m 'added blame' $ git rebase --continue a5f4a0d

169 $ git log -4 --pretty=format:"%h %s" 1c002dd added cat-file 9b29157 added blame 35cfb2b updated README formatting f3cc40e changed my name a bit filter-branch git add. filter-branch filter-branch--tree-filter $ git filter-branch --tree-filter 'rm -f passwords.txt' HEAD Rewrite 6b9b3cf04e7c5686a9cb838c3f36a8cb6a0fc2bd (21/21) Ref 'refs/heads/master' was rewritten --tree-filter git filter-branch -- tree-filter "find * -type f -name '*~' -delete" HEAD filter-branch --all trunk filter-branch

170 $ git filter-branch --subdirectory-filter trunk HEAD Rewrite 856f0bf61e41a27326cdae8f09fe708d679f596f (12/12) Ref 'refs/heads/master' was rewritten trunk git config filter-branch --commit-filter $ git filter-branch --commit-filter ' if [ "$GIT_AUTHOR_ " = "schacon@localhost" ]; then GIT_AUTHOR_NAME="Scott Chacon"; GIT_AUTHOR_ ="schacon@example.com"; git commit-tree "$@"; else git commit-tree "$@"; fi' HEAD git blame -L

171 $ git blame -L 12,22 simplegit.rb ^4832fe2 (Scott Chacon :31: ) def show(tree = 'master') ^4832fe2 (Scott Chacon :31: ) command("git show #{tree}") ^4832fe2 (Scott Chacon :31: ) end ^4832fe2 (Scott Chacon :31: ) 9f6560e4 (Scott Chacon :52: ) def log(tree = 'master') 79eaf55d (Scott Chacon :15: ) command("git log #{tree}") 9f6560e4 (Scott Chacon :52: ) end 9f6560e4 (Scott Chacon :52: ) 42cf2861 (Magnus Chacon :45: ) def blame(path) 42cf2861 (Magnus Chacon :45: ) command("git blame #{path}") 42cf2861 (Magnus Chacon :45: ) end ˆ4832fe2 ˆ git blame-c GITServerHandler.mGITPackUpload.m GITPackUpload.m-C $ git blame -C -L 141,153 GITPackUpload.m f344f58d GITServerHandler.m (Scott ) f344f58d GITServerHandler.m (Scott ) - (void) gatherobjectshasfromc f344f58d GITServerHandler.m (Scott ) { 70befddd GITServerHandler.m (Scott ) //NSLog(@"GATHER COMMI ad11ac80 GITPackUpload.m (Scott ) ad11ac80 GITPackUpload.m (Scott ) NSString *parentsha; ad11ac80 GITPackUpload.m (Scott ) GITCommit *commit = [g ad11ac80 GITPackUpload.m (Scott ) ad11ac80 GITPackUpload.m (Scott ) //NSLog(@"GATHER COMMI ad11ac80 GITPackUpload.m (Scott ) 56ef2caf GITServerHandler.m (Scott ) if(commit) { 56ef2caf GITServerHandler.m (Scott ) [refdict setob 56ef2caf GITServerHandler.m (Scott )

172 bisect bisect git bisect start git bisect bad git bisect good [good_commit] $ git bisect start $ git bisect bad $ git bisect good v1.0 Bisecting: 6 revisions left to test after this [ecb6e1bc347ccecc5f9350d878ce677feb13d3b2] error handling on repo git bisect good $ git bisect good Bisecting: 3 revisions left to test after this [b047b02ea83310a70fd603dc8cd7a6cd13d15c04] secure this thing git bisect bad $ git bisect bad Bisecting: 1 revisions left to test after this [f71ce38690acf49c1f3c9bea38e09d82a5ce6014] drop exceptions table

173 $ git bisect good b047b02ea83310a70fd603dc8cd7a6cd13d15c04 is first bad commit commit b047b02ea83310a70fd603dc8cd7a6cd13d15c04 Author: PJ Hyett Date: Tue Jan 27 14:48: secure this thing : ee3e7821b895e52c db9bdc4c61d1730 f24d3c6ebcfc639b1a e62d60b8e68a8e4 M config git bisect reset $ git bisect reset git bisect bisect start $ git bisect start HEAD v1.0 $ git bisect run test-error.sh test-error.sh makemake tests

174 git submodule add $ git submodule add git://github.com/chneukirchen/rack.git rack Initialized empty Git repository in /opt/subtest/rack/.git/ remote: Counting objects: 3181, done. remote: Compressing objects: 100% (1534/1534), done. remote: Total 3181 (delta 1951), reused 2623 (delta 1603) Receiving objects: 100% (3181/3181), KiB 422 KiB/s, done. Resolving deltas: 100% (1951/1951), done. rack git status $ git status # On branch master # Changes to be committed: # (use "git reset HEAD <file>..." to unstage) # # new file:.gitmodules # new file: rack #.gitmodules $ cat.gitmodules [submodule "rack"] path = rack url = git://github.com/chneukirchen/rack.git.gitignore git status git diff

175 $ git diff --cached rack diff --git a/rack b/rack new file mode index d709f --- /dev/null +++ b/rack -0,0 +1 +Subproject commit 08d709f78b8c5b0fbeb7821e37fa53e69afcf433 rack master $ git commit -m 'first commit with submodule rack' [master ] first commit with submodule rack 2 files changed, 4 insertions(+), 0 deletions(-) create mode gitmodules create mode rack rack $ git log -1 commit a aad6331e620cd bb Author: Scott Chacon <schacon@gmail.com> Date: Thu Apr 9 09:03: first commit with submodule rack $ cd rack/ $ git log -1 commit 08d709f78b8c5b0fbeb7821e37fa53e69afcf433 Author: Christian Neukirchen <chneukirchen@gmail.com> Date: Wed Mar 25 14:49:

176 Document version change $ git clone git://github.com/schacon/myproject.git Initialized empty Git repository in /opt/myproject/.git/ remote: Counting objects: 6, done. remote: Compressing objects: 100% (4/4), done. remote: Total 6 (delta 0), reused 0 (delta 0) Receiving objects: 100% (6/6), done. $ cd myproject $ ls -l total 8 -rw-r-r-- 1 schacon admin 3 Apr 9 09:11 README drwxr-xr-x 2 schacon admin 68 Apr 9 09:11 rack $ ls rack/ $ rack git submodule init git submodule update $ git submodule init Submodule 'rack' (git:// github.com/ chneukirchen/ rack.git) registered for path 'rack' $ git submodule update Initialized empty Git repository in /opt/myproject/rack/.git/ remote: Counting objects: 3181, done. remote: Compressing objects: 100% (1534/1534), done. remote: Total 3181 (delta 1951), reused 2623 (delta 1603) Receiving objects: 100% (3181/3181), KiB 173 KiB/s, done. Resolving deltas: 100% (1951/1951), done. Submodule path 'rack': checked out '08d709f78b8c5b0fbeb7821e37fa53e69afcf433' rack

177 $ git merge origin/master Updating a3eee Fast forward rack files changed, 1 insertions(+), 1 deletions(-) [master*]$ 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: rack # $ git diff diff --git a/rack b/rack index 6c5e70b..08d709f a/rack Subproject commit 6c5e70b984a60b3cecd395edd5b48a7575bf58e0 +Subproject commit 08d709f78b8c5b0fbeb7821e37fa53e69afcf433 git submodule update $ git submodule update remote: Counting objects: 5, done. remote: Compressing objects: 100% (3/3), done. remote: Total 3 (delta 1), reused 2 (delta 0) Unpacking objects: 100% (3/3), done. From git@github.com:schacon/rack 08d709f..6c5e70b master -> origin/master Submodule path 'rack': checked out '6c5e70b984a60b3cecd395edd5b48a7575bf58e0'

178 git submodule update $ git submodule update fatal: reference isn t a tree: 6c5e70b984a60b3cecd395edd5b48a7575bf58e0 Unable to checkout '6c5e70b984a60b3cecd395edd5ba7575bf58e0' in submodule path 'rack' $ git log -1 rack commit 85a3eee996800fcfa91e dd4172bf76678 Author: Scott Chacon <schacon@gmail.com> Date: Thu Apr 9 09:19: added a submodule reference I will never make public. hahahahaha! git submodule update submodule update git submodule update git checkout -b work

179 $ git checkout -b rack Switched to a new branch "rack" $ git submodule add git@github.com:schacon/rack.git rack Initialized empty Git repository in /opt/myproj/rack/.git/... Receiving objects: 100% (3184/3184), KiB 34 KiB/s, done. Resolving deltas: 100% (1952/1952), done. $ git commit -am 'added rack submodule' [rack cc49a69] added rack submodule 2 files changed, 4 insertions(+), 0 deletions(-) create mode gitmodules create mode rack $ git checkout master Switched to branch "master" $ git status # On branch master # Untracked files: # (use "git add <file>..." to include in what will be committed) # # rack/ submodule add $ rm -Rf rack/ $ git submodule add git@github.com:schacon/rack.git rack 'rack' already exists in the index rack $ git rm -r rack $ git submodule add git@github.com:schacon/rack.git rack Initialized empty Git repository in /opt/testsub/rack/.git/ remote: Counting objects: 3184, done. remote: Compressing objects: 100% (1465/1465), done. remote: Total 3184 (delta 1952), reused 2770 (delta 1675) Receiving objects: 100% (3184/3184), KiB 88 KiB/s, done.

180 Resolving deltas: 100% (1952/1952), done. $ git checkout master error: Untracked working tree file 'rack/authors' would be overwritten by merge. rack $ mv rack /tmp/ $ git checkout master Switched to branch "master" $ ls README rack rackgit submodule update /tmp/rack $ git remote add rack_remote git@github.com:schacon/rack.git $ git fetch rack_remote warning: no common commits remote: Counting objects: 3184, done.

181 remote: Compressing objects: 100% (1465/1465), done. remote: Total 3184 (delta 1952), reused 2770 (delta 1675) Receiving objects: 100% (3184/3184), KiB 4 KiB/s, done. Resolving deltas: 100% (1952/1952), done. From git@github.com:schacon/rack * [new branch] build -> rack_remote/build * [new branch] master -> rack_remote/master * [new branch] rack-0.4 -> rack_remote/rack-0.4 * [new branch] rack-0.9 -> rack_remote/rack-0.9 $ git checkout -b rack_branch rack_remote/master Branch rack_branch set up to track remote branch refs/remotes/rack_remote/master. Switched to a new branch "rack_branch" rack_branch master $ ls AUTHORS KNOWN-ISSUES Rakefile contrib lib COPYING README bin example test $ git checkout master Switched to branch "master" $ ls README master git readtreeread-tree master rack_branchmasterrack $ git read-tree --prefix=rack/ -u rack_branch $ git checkout rack_branch $ git pull git merge -s subtree -s subtree--squash --no-commit

182 $ git checkout master $ git merge --squash -s subtree --no-commit rack_branch Squash commit -- not updating HEAD Automatic merge went well; stopped before committing as requested rackrack_branch rackrack_branch diffgit diff-tree $ git diff-tree -p rack_branch rack master $ git diff-tree -p rack_remote/master

183 git config $ git config --global user.name "John Doe" $ git config --global user. johndoe@example.com /etc/gitconfig --systemgit config ~/.gitconfig --global.git/config.git/config /etc/gitconfig.git/ configgit config

184 $ git config --help git config core.editor $ git config --global core.editor emacs $HOME/.gitmessage.txt subject line what happened [ticket: X] commit.template git commit.template commit $ git config --global commit.template $HOME/.gitmessage.txt $ git commit subject line what happened [ticket: X]

185 # Please enter the commit message for your changes. Lines starting # with '#' will be ignored, and an empty message aborts the commit. # On branch master # Changes to be committed: # (use "git reset HEAD <file>..." to unstage) # # modified: lib/test.rb # ~ ~ ".git/commit_editmsg" 14L, 297C log diffmore less $ git config --global core.pager '' $ git config --global user.signingkey <gpg-key-id> git tag $ git tag -s <tag-name>.gitignore git add core.excludesfile.gitignore

186 $ git com git: 'com' is not a git-command. See 'git --help'. Did you mean this? commit help.autocorrect color.ui $ git config --global color.ui true color.ui = always --color color.ui = true color.* true false always color.branch color.diff color.interactive color.status

187 $ git config --global color.diff.meta blue black bold git config /usr/local/bin p4merge extmergep4merge $ cat /usr/local/bin/extmerge #!/bin/sh /Applications/p4merge.app/Contents/MacOS/p4merge $* path old-file old-hex old-mode new-file new-hex new-mode old-file new-file $ cat /usr/local/bin/extdiff #!/bin/sh [ $# -eq 7 ] && /usr/local/bin/extmerge "$2" "$5"

188 $ sudo chmod +x /usr/local/bin/extmerge $ sudo chmod +x /usr/local/bin/extdiff merge.tool mergetool.*.cmd mergetool.trustexitcode diff.external $ git config --global merge.tool extmerge $ git config --global mergetool.extmerge.cmd \ 'extmerge "$BASE" "$LOCAL" "$REMOTE" "$MERGED"' $ git config --global mergetool.trustexitcode false $ git config --global diff.external extdiff ~/.gitconfig [merge] tool = extmerge [mergetool "extmerge"] cmd = extmerge \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\" trustexitcode = false [diff] external = extdiff $ git diff 32d1776b1^ 32d1776b1 git mergetool extdiff extmerge extmerge $ cat /usr/local/bin/extmerge #!/bin/sh /Applications/kdiff3.app/Contents/MacOS/kdiff3 $*

189 $ git config --global merge.tool kdiff3 extmerge extdiff core.autocrlf true $ git config --global core.autocrlf true

190 core.autocrlf $ git config --global core.autocrlf input false $ git config --global core.autocrlf false trailing-space space-before-tab trailing-space space-before-tab indent-with-non-tab cr-at-eol indent-with-non-tab cr-at-eol core.whitespace - cr-at-eol $ git config --global core.whitespace \ trailing-space,space-before-tab,indent-with-non-tab git diff git apply $ git apply --whitespace=warn <patch> $ git apply --whitespace=fix <patch>

191 --whitespace=fixrebase receive.fsckobjects $ git config --system receive.fsckobjects true -f receive.denynonfastforwards $ git config --system receive.denynonfastforwards true denynonfastforwards receive.denydeletes $ git config --system receive.denydeletes true

192 .gitattributes.git/info/attributes.pbxproj pbxproj.gitattributes *.pbxproj -crlf -diff -crlf -diff *.pbxproj binary strings strings

193 strings git diff $ git diff diff --git a/chapter1.doc b/chapter1.doc index 88839c4..4afcb7c Binary files a/chapter1.doc and b/chapter1.doc differ.gitattributes *.doc diff=word strings $ git config diff.word.textconv catdoc.git/config [diff "word"] textconv = catdoc.doc git diff $ git diff diff --git a/chapter1.doc b/chapter1.doc index c1c8a0a..b93c9e a/chapter1.doc

194 +++ b/chapter1.doc -128,7 +128,7 and data size) Since its birth in 2005, Git has evolved and matured to be easy to use and yet retain these initial qualities. It s incredibly fast, it s very efficient with large projects, and it has an incredible branching -system for non-linear development. +system for non-linear development (See Chapter 3). strings *.doc *.odt.gitattributes *.odt diff=odt odt.git/config [diff "odt"] binary = true textconv = /usr/local/bin/odt-to-txt /usr/local/ bin/odt-to-txt #! /usr/bin/env perl # Simplistic OpenDocument Text (.odt) to plain text converter. # Author: Philipp Kempgen if (! defined($argv[0])) { print STDERR "No filename given!\n"; print STDERR "Usage: $0 filename\n"; exit 1;

195 } my $content = ''; open my $fh, '- ', 'unzip', '-qq', '-p', $ARGV[0], 'content.xml' or die $!; { local $/ = undef; # slurp mode $content = <$fh>; } close $fh; $_ = $content; s/<text:span\b[^>]*>//g; # remove spans s/<text:h\b[^>]*>/\n\n***** /g; # headers s/<text:list-item\b[^>]*>\s*<text:p\b[^>]*>/\n -- /g; # list items s/<text:list\b[^>]*>/\n\n/g; # lists s/<text:p\b[^>]*>/\n /g; # paragraphs s/<[^>]+>//g; # remove all XML tags s/\n{2,}/\n\n/g; # remove multiple blank lines s/\a\n+//; # remove leading blank lines print "\n", $_, "\n\n"; chmod +x /usr/local/bin/odt-to-txt git diff.odt exiftool $ echo '*.png diff=exif' >>.gitattributes $ git config diff.exif.textconv exiftool git diff diff --git a/image.png b/image.png index 88839c4..4afcb7c a/image.png ,12

196 ExifTool Version Number : File Size : 70 kb -File Modification Date/Time : 2009:04:17 10:12:35-07:00 +File Size : 94 kb +File Modification Date/Time : 2009:04:21 07:02:43-07:00 File Type : PNG MIME Type : image/png -Image Width : Image Height : 889 +Image Width : Image Height : 827 Bit Depth : 8 Color Type : RGB with Alpha $Id$ $ echo '*.txt ident' >>.gitattributes $ echo '$Id$' > test.txt $ rm test.txt $ git checkout -- test.txt $ cat test.txt $Id: 42812b7653c7b88933f8a9d6cad0ca16714b9bb3 $.gitattributes

197 indent.gitattributes *.c *.c filter=indent $ git config --global filter.indent.clean indent $ git config --global filter.indent.smudge cat *.c indent cat catindent $Date$

198 #! /usr/bin/env ruby data = STDIN.read last_date = `git log --pretty=format:"%ad" -1` puts data.gsub('$date$', '$Date: ' + last_date.to_s + '$') git log$date$ $Date$ expand_date daterexpand_date $ git config filter.dater.smudge expand_date $ git config filter.dater.clean 'perl -pe "s/\\\$date[^\\\$]*\\\$/\\\$date\\\ $/"' $Date$$Date$ $Date$ $ echo '# $Date$' > date_test.txt $ echo 'date*.txt filter=dater' >>.gitattributes $ git add date_test.txt.gitattributes $ git commit -m "Testing date expansion in Git" $ rm date_test.txt $ git checkout date_test.txt $ cat date_test.txt # $Date: Tue Apr 21 07:26: $.gitattributes dater

199 export-ignore test/ test/ export-ignore --pretty=format $Format:$ LAST_COMMIT git archive $ echo 'Last commit date: $Format:%cd$' > LAST_COMMIT $ echo "LAST_COMMIT export-subst" >>.gitattributes $ git add LAST_COMMIT.gitattributes $ git commit -am 'adding LAST_COMMIT file for archives' git archive $ cat LAST_COMMIT Last commit date: $Format:Tue Apr 21 08:38: $ database.xml merge=ours

200 $ git merge topic Auto-merging database.xml Merge made by recursive. hooks.git/hooks hooks pre-commit git commit --no-verify prepare-commit-msg commit-msg

201 post-commitgit log -1 HEAD git am git format-patch applypatch-msg git am pre-applypatch git am git ampost-applypatch pre-rebase pre-rebase git checkoutpost-checkout mergepost-merge pre-receive

202 post-receive pre-receive pre-receive pre-receive $USER #!/usr/bin/env ruby $refname = ARGV[0] $oldrev = ARGV[1] $newrev = ARGV[2] $user = ENV['USER']

203 puts "Enforcing Policies... \n(#{$refname}) (#{$oldrev[0,6]}) (#{$newrev[0,6]})" $newrev $oldrev git rev-list git rev-list git log $ git rev-list 538c33..d14fc7 d14fc7c847ab946ec39590d87783c69b031bdfb7 9f585da4401b0a3999e d15245c13f0be a1be950e2a8d078e6141f5cd20c1e61ad3 dfa04c9ef3d f13fb5b9b1fb7717d2222a 17716ec0f1ff5c77eff40b7fe912f9f6cfd0e475 git cat-file $ git cat-file commit ca82a6 tree cfda3bf379e4f8dba8717dee55aab78aef7f4daf parent 085bb3bcb608e1e8451d4b2432f8ecbe6306e7e7 author Scott Chacon <schacon@gmail.com> committer Scott Chacon <schacon@gmail.com> changed the version number sed

204 $ git cat-file commit ca82a6 sed '1,/^$/d' changed the version number $regex = /\[ref: (\d+)\]/ # 指定提交信息格式 def check_message_format missed_revs = `git rev-list #{$oldrev}..#{$newrev}`.split("\n") missed_revs.each do rev message = `git cat-file commit #{rev} sed '1,/^$/d'` if!$regex.match(message) puts "[POLICY] Your message is not formatted correctly" exit 1 end end end check_message_format update acl update avail unavail doc lib tests avail nickh,pjhyett,defunkt,tpw avail usinclair,cdickens,ebronte doc avail schacon lib avail schacon tests

205 avail unavail def get_acl_access_data(acl_file) # read in ACL data acl_file = File.read(acl_file).split("\n").reject { line line == '' } access = {} acl_file.each do line avail, users, path = line.split(' ') next unless avail == 'avail' users.split(',').each do user access[user] = [] access[user] << path end end access end get_acl_access_data {"defunkt"=>[nil], "tpw"=>[nil], "nickh"=>[nil], "pjhyett"=>[nil], "schacon"=>["lib", "tests"], "cdickens"=>["doc"], "usinclair"=>["doc"], "ebronte"=>["doc"]} git log --name-only $ git log -1 --name-only --pretty=format:'' 9f585d README lib/test.rb

206 get_acl_access_data # 仅允许特定用户修改项目中的特定子目录 def check_directory_perms access = get_acl_access_data('acl') # 检查是否有人在向他没有权限的地方推送内容 new_commits = `git rev-list #{$oldrev}..#{$newrev}`.split("\n") new_commits.each do rev files_modified = `git log name- only -- pretty=format:'' #{rev}`.split("\n") files_modified.each do path next if path.size == 0 has_file_access = false access[$user].each do access_path if!access_path # 用户拥有完全访问权限 (path.index(access_path) == 0) # 或者对此位置有访问权限 has_file_access = true end end if!has_file_access puts "[POLICY] You do not have access to push to #{path}" exit 1 end end end end check_directory_perms git rev-list path.index(access_path) ==0 access_path access_path receive.denydeletes receive.denynonfastforwards

207 # 只允许纯 fast-forward 推送 def check_fast_forward missed_refs = `git rev-list #{$newrev}..#{$oldrev}` missed_ref_count = missed_refs.split("\n").size if missed_ref_count > 0 puts "[POLICY] Cannot push a non fast-forward reference" exit 1 end end check_fast_forward chmod u+x.git/hooks/update $ git push -f origin master Counting objects: 5, done. Compressing objects: 100% (3/3), done. Writing objects: 100% (3/3), 323 bytes, done. Total 3 (delta 1), reused 0 (delta 0) Unpacking objects: 100% (3/3), done. Enforcing Policies... (refs/heads/master) (8338c5) (c5b616) [POLICY] Cannot push a non fast-forward reference error: hooks/update exited with error code 1 error: hook declined to update refs/heads/master To git@gitserver:project.git! [remote rejected] master -> master (hook declined) error: failed to push some refs to 'git@gitserver:project.git' Enforcing Policies... (refs/heads/master) (8338c5) (c5b616)

208 [POLICY] Cannot push a non fast-forward reference error: hooks/update exited with error code 1 error: hook declined to update refs/heads/master To git@gitserver:project.git! [remote rejected] master -> master (hook declined) error: failed to push some refs to 'git@gitserver:project.git' [POLICY] Your message is not formatted correctly lib [POLICY] You do not have access to push to lib/test.rb update

209 #!/usr/bin/env ruby message_file = ARGV[0] message = File.read(message_file) $regex = /\[ref: (\d+)\]/ if!$regex.match(message) puts "[POLICY] Your message is not formatted correctly" exit 1 end.git/hooks/commit-msg $ git commit -am 'test' [POLICY] Your message is not formatted correctly $ git commit -am 'test [ref: 132]' [master e05c914] test [ref: 132] 1 files changed, 1 insertions(+), 0 deletions(-) #!/usr/bin/env ruby $user = ENV['USER'] # [ insert acl_access_data method from above ] # 只允许特定用户修改项目重特定子目录的内容 def check_directory_perms access = get_acl_access_data('.git/acl') files_modified = `git diff-index --cached --name-only HEAD`.split("\n") files_modified.each do path

210 next if path.size == 0 has_file_access = false access[$user].each do access_path if!access_path (path.index(access_path) == 0) has_file_access = true end if!has_file_access puts "[POLICY] You do not have access to push to #{path}" exit 1 end end end check_directory_perms access = get_acl_access_data('acl') access = get_acl_access_data('.git/acl') files_modified = `git log -1 --name-only --pretty=format:'' #{ref}` files_modified = `git diff-index --cached --name-only HEAD` $user

211 #!/usr/bin/env ruby base_branch = ARGV[0] if ARGV[1] topic_branch = ARGV[1] else topic_branch = "HEAD" end target_shas = `git rev-list #{base_branch}..#{topic_branch}`.split("\n") remote_refs = `git branch -r`.split("\n").map { r r.strip } target_shas.each do sha remote_refs.each do remote_ref shas_pushed = `git rev-list ^#{sha}^@ refs/remotes/#{remote_ref}` if shas_pushed.split("\n").include?(sha) puts "[POLICY] Commit #{sha} has already been pushed to #{remote_ref}" exit 1 end end end git rev-list ^#{sha}^@ refs/remotes/#{remote_ref} SHAˆ@ -f

212

213 git svn git svn git svn git svn

214 svnsync $ mkdir /tmp/test-svn $ svnadmin create /tmp/test-svn $ cat /tmp/test-svn/hooks/pre-revprop-change #!/bin/sh exit 0; $ chmod +x /tmp/test-svn/hooks/pre-revprop-change svnsync init $ svnsync init file:///tmp/test-svn $ svnsync sync file:///tmp/test-svn Committed revision 1. Copied properties for revision 1. Committed revision 2. Copied properties for revision 2. Committed revision git svn clone

215 file:/// tmp/test-svn $ git svn clone file:///tmp/test-svn -T trunk -b branches -t tags Initialized empty Git repository in / Users/ schacon/ projects/ testsvnsync/ svn/.git/ r1 = b4e387bc68740b5af56c2a5faf4003ae42bd135c (trunk) A m4/acx_pthread.m4 A m4/stl_hash.m4... r75 = d1957f3b eec6314e15bcda59e3d9610 (trunk) Found possible branch point: file:///tmp/test-svn/trunk => \ file:///tmp/test-svn /branches/my-calc-branch, 75 Found branch parent: (my-calc-branch) d1957f3b eec6314e15bcda59e3d9610 Following parent with do_switch Successfully followed parent r76 = ecc0badd73f40ea2f01fce b01 (my-calc-branch) Checked out HEAD: file:///tmp/test-svn/branches/my-calc-branch r76 git svn init git svn fetch -T trunk -b branches -t tags -s $ git svn clone file:///tmp/test-svn -s $ git branch -a * master my-calc-branch tags/2.0.2 tags/release tags/release tags/release-2.0.2rc1 trunk

216 origin/[branch] git svn show-ref $ git show-ref 1cbd4904d9982f386d87f88fce1c24ad7c0f0471 refs/heads/master aee1ecc f355a883f5d99cff0c852d3c4 refs/remotes/my-calc-branch 03d09b0e2aad427e34a6d50ff147128e76c0e0f5 refs/remotes/tags/ d02cc0adc9da4319eeba ba219b9c376 refs/remotes/tags/release caaa711a50c77879a91b8b f672745cb refs/remotes/tags/release c4cb508144c513ff1214c3488abe66dcb92916f refs/remotes/tags/release-2.0.2rc1 1cbd4904d9982f386d87f88fce1c24ad7c0f0471 refs/remotes/trunk $ git show-ref 83e38c7a0af325a9722f2fdc56b d83a1 refs/heads/master 3e15e38c198baac84223acfc6224bb8b99ff2281 refs/remotes/gitserver/master 0a30dd3b0c795b80212ae723640d4e5d48cabdff refs/remotes/origin/master fdd55f916652be4881c6f11600d6f refs/remotes/origin/testing gitserver master origin master testing git svn $ git commit -am 'Adding git-svn instructions to the README' [master 97031e5] Adding git-svn instructions to the README 1 files changed, 1 insertions(+), 1 deletions(-) git svn dcommit

217 $ git svn dcommit Committing to file:///tmp/test-svn/trunk... M README.txt Committed r79 M README.txt r79 = 938b1a547c2cc92033b74d32030e a5c8 (trunk) No changes between current HEAD and refs/remotes/trunk Resetting to the latest refs/remotes/trunk gitsvn-id $ git log -1 commit 938b1a547c2cc92033b74d32030e a5c8 Author: schacon <schacon@4c93b f-11de-be05-5f7a > Date: Sat May 2 22:06: Adding git-svn instructions to the README git- svn- id: file:/// tmp/ test- svn/ trunk@79 4c93b f-11debe05-5f7a e5 938b1a5 dcommit git svn $ git svn dcommit Committing to file:///tmp/test-svn/trunk... Merge conflict during commit: Your file or directory 'README.txt' is probably \ out-of-date: resource out of date; try updating at /Users/schacon/libexec/git-\ core/git-svn line 482

218 git svn rebase $ git svn rebase M README.txt r80 = ff829ab914e8775c7c025d741beb3d523ee30bc4 (trunk) First, rewinding head to replay your work on top of it... Applying: first user change dcommit $ git svn dcommit Committing to file:///tmp/test-svn/trunk... M README.txt Committed r81 M README.txt r81 = 456cbe6337abe49154db70106d1836bc1332deed (trunk) No changes between current HEAD and refs/remotes/trunk Resetting to the latest refs/remotes/trunk git svn dcommit $ git svn dcommit Committing to file:///tmp/test-svn/trunk... M configure.ac Committed r84 M autogen.sh r83 = 8aa54a74d452f82eee10076ab2584c1fc424853b (trunk) M configure.ac r84 = cdbac939211ccb18aa744e581e46563af5d962d0 (trunk) W: d2f23b80f67aaaa1f6f5aaef48fce3263ac71a92 and refs/remotes/trunk differ, \ using rebase: : efa5a59965fbbb5b2b0a12890f1b351bb5493c18 \ 015e4c98c482f0fa71e4d b37fa6 M autogen.sh First, rewinding head to replay your work on top of it... Nothing to do.

219 sit svn fetch git svn rebase $ git svn rebase M generate_descriptor_proto.sh r82 = bd16df9173e424c6f52c337ab6efa7f f1 (trunk) First, rewinding head to replay your work on top of it... Fast-forwarded master to refs/remotes/trunk. git svn rebase git svn rebase experiment master dcommit $ git svn dcommit Committing to file:///tmp/test-svn/trunk... M CHANGES.txt Committed r85 M CHANGES.txt r85 = 4bfebeec434d156c36f2bcd18f4e3d97dc3269a2 (trunk) No changes between current HEAD and refs/remotes/trunk Resetting to the latest refs/remotes/trunk COPYING.txt: locally modified INSTALL.txt: locally modified M COPYING.txt M INSTALL.txt Committed r86 M INSTALL.txt M COPYING.txt r86 = 2647f6b86ccfcaad4ec58c520e369ec81f7c283c (trunk) No changes between current HEAD and refs/remotes/trunk Resetting to the latest refs/remotes/trunk

220 dcommit experiment git svn branch [ 分支名 ] $ git svn branch opera Copying file:///tmp/ test- svn/ trunk at r87 to file:/// tmp/test- svn/ branches/ opera... Found possible branch point: file:///tmp/test-svn/trunk => \ file:///tmp/test-svn/branches/opera, 87 Found branch parent: (opera) 1f6bfe471083cbca06ac8d4176f7ad4de0d62e5f Following parent with do_switch Successfully followed parent r89 = 9b6fe0b90c5c9adf9165f dbc54a7cbf (opera) svn copy trunk branches/opera trunk opera git-svn-id dcommit opera $ git branch opera remotes/opera opera trunk master git merge -m Merge branch opera

221 git merge dcommit git merge git merge --squash opera git svn git svn log $ git svn log r87 schacon :07: (Sat, 02 May 2009) 2 lines autogen change r86 schacon :00: (Sat, 02 May 2009) 2 lines Merge branch 'experiment' r85 schacon :00: (Sat, 02 May 2009) 2 lines updated the changelog git svn log svn log

222 git svn log git log svn annotate git svn blame [ 文件名 ] $ git svn blame README.txt 2 temporal Protocol Buffers - Google's data interchange format 2 temporal Copyright 2008 Google Inc. 2 temporal 2 temporal 22 temporal C++ Installation - Unix 22 temporal ======================= 2 temporal 79 schacon Committing in git-svn. 78 schacon 2 temporal To build and install the C++ Protocol Buffer runtime and the Protocol 2 temporal Buffer compiler (protoc) execute the following: 2 temporal git svn info svn info $ git svn info Path:. URL: Repository Root: Repository UUID: 4c93b f-11de-be05-5f7a Revision: 87 Node Kind: directory Schedule: normal Last Changed Author: schacon Last Changed Rev: 87 Last Changed Date: :07: (Sat, 02 May 2009) blame log svn:ignore.gitignore git svn

223 git svn create-ignore.gitignore git svn show-ignore.gitignore $ git svn show-ignore >.git/info/exclude.gitignore.gitignore git svn git merge git-svn-id pre-receive git-svn-id git svn git svn clone

224 schacon blame git svn log user.txt schacon = Scott Chacon <schacon@ge .com> selse = Someo Nelse <selse@ge .com> $ svn log ^/ --xml grep -P "^<author" sort -u \ perl -pe 's/<author>(.*?)<\/author>/$1 = /' > users.txt grep sort perl git svn clone init --no-metadata git svn import $ git svn clone \ --authors-file=users.txt --no-metadata -s my_project my_project commit 37efa680e8473b615de980fa a35a Author: schacon <schacon@4c93b f-11de-be05-5f7a > Date: Sun May 3 00:12: fixed install - go to trunk trunk@94 4c93b f-11debe05-5f7a git- svn- id: my- project.googlecode.com/ svn/

225 commit 03a8785f44c8ea5cdb0e8834b7c8e6c469be2ff2 Author: Scott Chacon Date: Sun May 3 00:12: fixed install - go to trunk git-svn-id post-import( 导入后 ) git svn $ git for- each- ref refs/ remotes/ tags cut - d / - f 4- grep - while read tagname; do git tag "$tagname" "tags/$tagname"; git branch - r -d "tags/$tagname"; done tag/ refs/remotes $ git for- each- ref refs/ remotes cut - d / - f 3- grep - while read branchname; do git branch "$branchname" "refs/ remotes/ $branchname"; git branch -r -d "$branchname"; done $ git remote add origin git@my-git-server:myrepository.git $ git push origin --all $ git push origin --tags

226 contrib git svn $ git clone git://git.kernel.org/pub/scm/git/git.git $ cd git/contrib/fast-import fast-import git-p4 p4 $ export P4PORT=public.perforce.com:1666 git-p4 clone $ git-p4 clone //public/jam/src@all /opt/p4import Importing from //public/jam/src@all into /opt/p4import Reinitialized existing Git repository in /opt/p4import/.git/ Import destination: refs/remotes/p4/master Importing revision 4409 (100%) /opt/p4import git log $ git log -2 commit 1fd4ec efd2db83548b85b1bbbc07dc2 Author: Perforce staff <support@perforce.com> Date: Thu Aug 19 10:18: Drop 'rc3' moniker of jam-2.5. the main part of the document. Folded rc2 and rc3 RELNOTES into Built new tar/zip balls. Only 16 months later. [git-p4: depot-paths = "//public/jam/src/": change = 4409] commit ca8870db541a23ed867f38847eda65bf d

227 Author: Richard Geiger Date: Tue Apr 22 20:51: Update derived jamgram.c [git-p4: depot-paths = "//public/jam/src/": change = 3108] git-p4 git filter-branch $ git filter-branch --msg-filter ' sed -e "/^\[git-p4:/d" ' Rewrite 1fd4ec efd2db83548b85b1bbbc07dc2 (123/123) Ref 'refs/heads/master' was rewritten git log git-p4 $ git log -2 commit 10a16d60cffca14d454a15c f4082bc5b0 Author: Perforce staff <support@perforce.com> Date: Thu Aug 19 10:18: Drop 'rc3' moniker of jam-2.5. the main part of the document. Folded rc2 and rc3 RELNOTES into Built new tar/zip balls. Only 16 months later. commit 2b6c6db311dd76c34c66ec1c40a49405e6b527b2 Author: Richard Geiger <rmg@perforce.com> Date: Tue Apr 22 20:51: Update derived jamgram.c

228 git fast-import git fast-import back_yy_mm_dd $ ls /opt/import_from back_2009_01_02 back_2009_01_04 back_2009_01_14 back_2009_02_03 current fast-import \r last_mark = nil # 循环遍历所有目录 Dir.chdir(ARGV[0]) do Dir.glob("*").each do dir next if File.file?(dir) # 进入目标目录 Dir.chdir(dir) do last_mark = print_export(dir, last_mark) end end

229 end print_export fast-import print_export mark = convert_dir_to_mark(dir) $marks = [] def convert_dir_to_mark(dir) if!$marks.include?(dir) $marks << dir end ($marks.index(dir) + 1).to_s end print_export date = convert_dir_to_date(dir) convert_dir_to_date def convert_dir_to_date(dir) if dir == 'current' return Time.now().to_i else dir = dir.gsub('back_', '') (year, month, day) = dir.split('_') return Time.local(year, month, day).to_i end end

230 $author = 'Scott Chacon <schacon@example.com>' # 打印导入所需的信息 puts 'commit refs/heads/master' puts 'mark :' + mark puts "committer #{$author} #{date} -0700" export_data('imported from ' + dir) puts 'from :' + last_mark if last_mark data (size)\n(contents) export_data def export_data(string) end print "data #{string.size}\n#{string}" deleeall puts 'deleteall' Dir.glob("**/*").each do file next if!file.file?(file) inline_data(file) end

231 fast-import M 644 inline path/to/file data (size) (file contents) inline_data def inline_data(file, code = 'M', mode = '644') content = File.read(file) puts "#{code} #{mode} inline #{file}" export_data(content) end export_data return mark $stdout.binmode $ ruby import.rb /opt/import_from commit refs/heads/master mark :1 committer Scott Chacon <schacon@ge .com> data 29 imported from back_2009_01_02deleteall M 644 inline file.rb

232 data 12 version two commit refs/heads/master mark :2 committer Scott Chacon data 29 imported from back_2009_01_04from :1 deleteall M 644 inline file.rb data 14 version three M 644 inline new.rb data 16 new version one (...) git fast-import git init $ git init Initialized empty Git repository in /opt/import_to/.git/ $ ruby import.rb /opt/import_from git fast-import git-fast-import statistics: Alloc'd objects: 5000 Total objects: 18 ( 1 duplicates ) blobs : 7 ( 1 duplicates 0 deltas) trees : 6 ( 0 duplicates 1 deltas) commits: 5 ( 0 duplicates 0 deltas) tags : 0 ( 0 duplicates 0 deltas) Total branches: 1 ( 1 loads ) marks: 1024 ( 5 unique ) atoms: 3 Memory total: 2255 KiB pools: 2098 KiB objects: 156 KiB pack_report: getpagesize() = 4096 pack_report: core.packedgitwindowsize = pack_report: core.packedgitlimit = pack_report: pack_used_ctr = 9 pack_report: pack_mmap_calls = 5 pack_report: pack_open_windows = 1 / 1

233 pack_report: pack_mapped = 1356 / git log $ git log -2 commit 10bfe7d22ce15ee25b60a824c ca593d41 Author: Scott Chacon <schacon@example.com> Date: Sun May 3 12:57: imported from current commit 7e519590de754d079dd73b44d695a42c9d2df452 Author: Scott Chacon <schacon@example.com> Date: Tue Feb 3 01:00: imported from back_2009_02_03 master $ ls $ git reset --hard master HEAD is now at 10bfe7d imported from current $ ls file.rb lib fast-import contib/fast-import git-p4

234

235 checkout branch remote git init.git $ ls HEAD branches/ config

236 description hooks/ index info/ objects/ refs/ git init branches description config info hooks HEAD index objects refs objects refs HEAD index hashobject.git objects $ mkdir test $ cd test $ git init Initialized empty Git repository in /tmp/test/.git/ $ find.git/objects.git/objects.git/objects/info.git/objects/pack $ find.git/objects -type f $ objects pack info $ echo 'test content' git hash-object -w --stdin d670460b4b4aece5915caf5c68d12f560a9fe3e4

237 -w hash-object --stdin $ find.git/objects -type f.git/objects/d6/70460b4b4aece5915caf5c68d12f560a9fe3e4 objects cat-file - p $ git cat-file -p d670460b4b4aece5915caf5c68d12f560a9fe3e4 test content $ echo 'version 1' > test.txt $ git hash-object -w test.txt 83baae61804e65cc73a7201a c76066a30 $ echo 'version 2' > test.txt $ git hash-object -w test.txt 1f7a7a472abf3dd9643fd615f6da379c4acb3e3a $ find.git/objects -type f.git/objects/1f/7a7a472abf3dd9643fd615f6da379c4acb3e3a.git/objects/83/baae61804e65cc73a7201a c76066a30.git/objects/d6/70460b4b4aece5915caf5c68d12f560a9fe3e4

238 $ git cat-file -p 83baae61804e65cc73a7201a c76066a30 > test.txt $ cat test.txt version 1 $ git cat-file -p 1f7a7a472abf3dd9643fd615f6da379c4acb3e3a > test.txt $ cat test.txt version 2 cat-file -t $ git cat-file -t 1f7a7a472abf3dd9643fd615f6da379c4acb3e3a blob $ git cat-file -p master^{tree} blob a906cb2a4a904a152e80877d daad0c859 README blob 8f f9404f26296befa88755fc2598c289 Rakefile tree 99f1a6d12cb4b6f19c8655fca46c3ecf317074e0 lib masterˆ{tree} branch lib $ git cat-file -p 99f1a6d12cb4b6f19c8655fca46c3ecf317074e blob 47c6340d6459e05787f644c2447d2595f5d3a54b simplegit.rb

239 update-index --add -- cacheinfo $ git update-index --add --cacheinfo \ 83baae61804e65cc73a7201a c76066a30 test.txt write-tree -w write-tree $ git write-tree d8329fc1cc938780ffdd9f94e0d364e0ea74f579 $ git cat-file -p d8329fc1cc938780ffdd9f94e0d364e0ea74f blob 83baae61804e65cc73a7201a c76066a30 test.txt $ git cat-file -t d8329fc1cc938780ffdd9f94e0d364e0ea74f579 tree

240 $ echo 'new file' > new.txt $ git update-index test.txt $ git update-index --add new.txt $ git write-tree 0155eb a0f03eb265b69f5a2d56f341 $ git cat-file -p 0155eb a0f03eb265b69f5a2d56f blob fa49b ad f2a75f74e3671e92 new.txt blob 1f7a7a472abf3dd9643fd615f6da379c4acb3e3a test.txt 1f7a7a read-tree --prefix read-tree $ git read-tree --prefix=bak d8329fc1cc938780ffdd9f94e0d364e0ea74f579 $ git write-tree 3c4e9cd789d88d8d89c c3585e41b0e614 $ git cat-file -p 3c4e9cd789d88d8d89c c3585e41b0e tree d8329fc1cc938780ffdd9f94e0d364e0ea74f579 bak blob fa49b ad f2a75f74e3671e92 new.txt blob 1f7a7a472abf3dd9643fd615f6da379c4acb3e3a test.txt bak commit-tree

241 $ echo 'first commit' git commit-tree d8329f fdf4fc3344e67ab068f836878b6c4951e3b15f3d cat-file $ git cat-file -p fdf4fc3 tree d8329fc1cc938780ffdd9f94e0d364e0ea74f579 author Scott Chacon <schacon@gmail.com> committer Scott Chacon <schacon@gmail.com> first commit user.name user. $ echo 'second commit' git commit-tree 0155eb -p fdf4fc3 cac0cab538b970a37ea1e769cbbde608743bc96d $ echo 'third commit' git commit-tree 3c4e9c -p cac0cab 1a410efbd13591db ebc7a059dd55cfe9 git log

242 $ git log --stat 1a410e commit 1a410efbd13591db ebc7a059dd55cfe9 Author: Scott Chacon Date: Fri May 22 18:15: third commit bak/test.txt files changed, 1 insertions(+), 0 deletions(-) commit cac0cab538b970a37ea1e769cbbde608743bc96d Author: Scott Chacon <schacon@gmail.com> Date: Fri May 22 18:14: second commit new.txt 1 + test.txt files changed, 2 insertions(+), 1 deletions(-) commit fdf4fc3344e67ab068f836878b6c4951e3b15f3d Author: Scott Chacon <schacon@gmail.com> Date: Fri May 22 18:09: first commit test.txt files changed, 1 insertions(+), 0 deletions(-) git add git commit.git/objects $ find.git/objects -type f.git/objects/01/55eb a0f03eb265b69f5a2d56f341 # tree 2.git/objects/1a/410efbd13591db ebc7a059dd55cfe9 # commit 3.git/objects/1f/7a7a472abf3dd9643fd615f6da379c4acb3e3a # test.txt v2.git/objects/3c/4e9cd789d88d8d89c c3585e41b0e614 # tree 3.git/objects/83/baae61804e65cc73a7201a c76066a30 # test.txt v1

243 .git/objects/ca/c0cab538b970a37ea1e769cbbde608743bc96d # commit 2.git/objects/d6/70460b4b4aece5915caf5c68d12f560a9fe3e4 # 'test content'.git/objects/d8/329fc1cc938780ffdd9f94e0d364e0ea74f579 # tree 1.git/objects/fa/49b ad f2a75f74e3671e92 # new.txt.git/objects/fd/f4fc3344e67ab068f836878b6c4951e3b15f3d # commit 1 irb $ irb >> content = "what is up, doc?" => "what is up, doc?" >> header = "blob #{content.length}\0" => "blob 16\000" require Digest::SHA1.hexdigest()

244 >> store = header + content => "blob 16\000what is up, doc?" >> require 'digest/sha1' => true >> sha1 = Digest::SHA1.hexdigest(store) => "bd9dbf5aae1a3862dd b20206e5fc37" Zlib::Deflate.deflate() >> require 'zlib' => true >> zlib_content = Zlib::Deflate.deflate(store) => "x\234k\312\311or04c(\317h,q\310,v(-\320qh\311o\266\a\000_\034\a\235" FileUtils.mkdir_p() File.open write() >> path = '.git/objects/' + sha1[0,2] + '/' + sha1[2,38] => ".git/objects/bd/9dbf5aae1a3862dd b20206e5fc37" >> require 'fileutils' => true >> FileUtils.mkdir_p(File.dirname(path)) => ".git/objects/bd" >> File.open(path, 'w') { f f.write zlib_content } => 32 git log 1a410e 1a410e

245 .git/ refs $ find.git/refs.git/refs.git/refs/heads.git/refs/tags $ find.git/refs -type f $ $ echo "1a410efbd13591db ebc7a059dd55cfe9" >.git/refs/heads/master $ git log --pretty=oneline master 1a410efbd13591db ebc7a059dd55cfe9 third commit cac0cab538b970a37ea1e769cbbde608743bc96d second commit fdf4fc3344e67ab068f836878b6c4951e3b15f3d first commit update-ref $ git update-ref refs/heads/master 1a410efbd13591db ebc7a059dd55cfe9 $ git update-ref refs/heads/test cac0ca $ git log --pretty=oneline test cac0cab538b970a37ea1e769cbbde608743bc96d second commit fdf4fc3344e67ab068f836878b6c4951e3b15f3d first commit

246 git branch ( 分支名称 ) update-ref git branch ( 分支名称 ) $ cat.git/head ref: refs/heads/master git checkout test $ cat.git/head ref: refs/heads/test git commit symbolicref $ git symbolic-ref HEAD refs/heads/master

What is Version Control? What is Git?

What is Version Control? What is Git? Git Littlebtc (Hsiao-Ting Yu) Scott Chacon Pro Git CC-BY-NC-SA-3.0 What is Version Control? What is Git? Local rcs Server Checkout Commit Subversion SVN Server Server git, Mecurial (hg), bazaar (bzr)

More information

Pro Git

Pro Git Pro Git Table of Contents Pro Git.......................................................................................... 1 Scott Chacon 序..............................................................................

More information

Pro Git 中文版

Pro Git 中文版 Pro Git 中 文 版 Sco Chacon * Liam Huang 2014-04-02 * This is the PDF file for the Pro Git book contents. It is licensed under the Creative Commons A ribution-non Commercial-Share Alike 3.0 license. I hope

More information

Microsoft Word - template.doc

Microsoft Word - template.doc HGC efax Service User Guide I. Getting Started Page 1 II. Fax Forward Page 2 4 III. Web Viewing Page 5 7 IV. General Management Page 8 12 V. Help Desk Page 13 VI. Logout Page 13 Page 0 I. Getting Started

More information

Microsoft Word - linux命令及建议.doc

Microsoft Word - linux命令及建议.doc Linux 操 作 系 统 命 令 集 1 基 本 命 令 查 看 系 统 信 息 : uname -a 修 改 密 码 : passwd 退 出 : logout(exit) 获 取 帮 助 : man commands 2 文 件 和 目 录 命 令 显 示 当 前 工 作 目 录 : pwd 改 变 所 在 目 录 : cd cd - 切 换 到 上 一 次 使 用 的 目 录 cd 切 换

More information

Microsoft Word - SupplyIT manual 3_cn_david.doc

Microsoft Word - SupplyIT manual 3_cn_david.doc MR PRICE Supply IT Lynette Rajiah 1 3 2 4 3 5 4 7 4.1 8 4.2 8 4.3 8 5 9 6 10 6.1 16 6.2 17 6.3 18 7 21 7.1 24 7.2 25 7.3 26 7.4 27 7.5 28 7.6 29 7.7 30 7.8 31 7.9 32 7.10 32 7.11 33 7.12 34 1 7.13 35 7.14

More information

AL-M200 Series

AL-M200 Series NPD4754-00 TC ( ) Windows 7 1. [Start ( )] [Control Panel ()] [Network and Internet ( )] 2. [Network and Sharing Center ( )] 3. [Change adapter settings ( )] 4. 3 Windows XP 1. [Start ( )] [Control Panel

More information

epub83-1

epub83-1 C++Builder 1 C + + B u i l d e r C + + B u i l d e r C + + B u i l d e r C + + B u i l d e r 1.1 1.1.1 1-1 1. 1-1 1 2. 1-1 2 A c c e s s P a r a d o x Visual FoxPro 3. / C / S 2 C + + B u i l d e r / C

More information

Symantec™ Sygate Enterprise Protection 防护代理安装使用指南

Symantec™ Sygate Enterprise Protection 防护代理安装使用指南 Symantec Sygate Enterprise Protection 防 护 代 理 安 装 使 用 指 南 5.1 版 版 权 信 息 Copyright 2005 Symantec Corporation. 2005 年 Symantec Corporation 版 权 所 有 All rights reserved. 保 留 所 有 权 利 Symantec Symantec 徽 标 Sygate

More information

TX-NR3030_BAS_Cs_ indd

TX-NR3030_BAS_Cs_ indd TX-NR3030 http://www.onkyo.com/manual/txnr3030/adv/cs.html Cs 1 2 3 Speaker Cable 2 HDMI OUT HDMI IN HDMI OUT HDMI OUT HDMI OUT HDMI OUT 1 DIGITAL OPTICAL OUT AUDIO OUT TV 3 1 5 4 6 1 2 3 3 2 2 4 3 2 5

More information

國 立 政 治 大 學 教 育 學 系 2016 新 生 入 學 手 冊 目 錄 表 11 國 立 政 治 大 學 教 育 學 系 博 士 班 資 格 考 試 抵 免 申 請 表... 46 論 文 題 目 申 報 暨 指 導 教 授... 47 表 12 國 立 政 治 大 學 碩 博 士 班 論

國 立 政 治 大 學 教 育 學 系 2016 新 生 入 學 手 冊 目 錄 表 11 國 立 政 治 大 學 教 育 學 系 博 士 班 資 格 考 試 抵 免 申 請 表... 46 論 文 題 目 申 報 暨 指 導 教 授... 47 表 12 國 立 政 治 大 學 碩 博 士 班 論 國 立 政 治 大 學 教 育 學 系 2016 新 生 入 學 手 冊 目 錄 一 教 育 學 系 簡 介... 1 ( 一 ) 成 立 時 間... 1 ( 二 ) 教 育 目 標 與 發 展 方 向... 1 ( 三 ) 授 課 師 資... 2 ( 四 ) 行 政 人 員... 3 ( 五 ) 核 心 能 力 與 課 程 規 劃... 3 ( 六 ) 空 間 環 境... 12 ( 七 )

More information

IP505SM_manual_cn.doc

IP505SM_manual_cn.doc IP505SM 1 Introduction 1...4...4...4...5 LAN...5...5...6...6...7 LED...7...7 2...9...9...9 3...11...11...12...12...12...14...18 LAN...19 DHCP...20...21 4 PC...22...22 Windows...22 TCP/IP -...22 TCP/IP

More information

Windows XP

Windows XP Windows XP What is Windows XP Windows is an Operating System An Operating System is the program that controls the hardware of your computer, and gives you an interface that allows you and other programs

More information

ebook70-5

ebook70-5 5 / 5.1 L i n u x L i n u x X L i n u x 5.1.1 touch t o u c h t o u c h G N U t o u c h # touch newfile # ls -l newfile - r w - r - - r - - 1 bball users 0 Jan 5 12 : 40 n e w f i l e t o u c h 0 # > newfile2

More information

PowerPoint 演示文稿

PowerPoint 演示文稿 Linux 操 作 系 统 基 础 介 绍 课 程 目 标 及 要 求 了 解 Linux 操 作 系 统 的 登 入 方 式 掌 握 常 用 命 令 的 基 本 用 法 能 够 熟 练 在 各 个 目 录 转 换 Outline 1. Linux 操 作 系 统 简 介 2. Linux 操 作 系 统 的 登 录 3. Linux 操 作 系 统 的 目 录 结 构 4. 常 用 命 令 5.

More information

epub 63-3

epub 63-3 3 Solaris S o l a r i s S o l a r i s 2 S o l a r i s s h e l l p a s s w d v i l s c a t p g m o r e r m 3.1 3.1.1 c p c p c o p y c p c p cp source-file destination-file s o u r c e - f i l e c p d e

More information

WebSphere Studio Application Developer IBM Portal Toolkit... 2/21 1. WebSphere Portal Portal WebSphere Application Server stopserver.bat -configfile..

WebSphere Studio Application Developer IBM Portal Toolkit... 2/21 1. WebSphere Portal Portal WebSphere Application Server stopserver.bat -configfile.. WebSphere Studio Application Developer IBM Portal Toolkit... 1/21 WebSphere Studio Application Developer IBM Portal Toolkit Portlet Doug Phillips (dougep@us.ibm.com),, IBM Developer Technical Support Center

More information

Serial ATA ( Silicon Image SiI3114)...2 (1) SATA... 2 (2) B I O S S A T A... 3 (3) RAID BIOS RAID... 5 (4) S A T A... 8 (5) S A T A... 10

Serial ATA ( Silicon Image SiI3114)...2 (1) SATA... 2 (2) B I O S S A T A... 3 (3) RAID BIOS RAID... 5 (4) S A T A... 8 (5) S A T A... 10 Serial ATA ( Silicon Image SiI3114)...2 (1) SATA... 2 (2) B I O S S A T A... 3 (3) RAID BIOS RAID... 5 (4) S A T A... 8 (5) S A T A... 10 Ác Åé å Serial ATA ( Silicon Image SiI3114) S A T A (1) SATA (2)

More information

Microsoft Word - PS2_linux_guide_cn.doc

Microsoft Word - PS2_linux_guide_cn.doc Linux For $ONY PlayStatioin2 Unofficall General Guide Language: Simplified Chinese First Write By Beter Hans v0.1 Mail: hansb@citiz.net Version: 0.1 本 人 是 菜 鸟 + 小 白 欢 迎 指 正 错 误 之 处, 如 果 您 有 其 他 使 用 心 得

More information

1.ai

1.ai HDMI camera ARTRAY CO,. LTD Introduction Thank you for purchasing the ARTCAM HDMI camera series. This manual shows the direction how to use the viewer software. Please refer other instructions or contact

More information

CHN_p000A_Cover.ai

CHN_p000A_Cover.ai NextoDI Co., Ltd. www.nextodi.com 列表........................................................................ 1 3 4 4 6 7 8 9 10 12 14 16 20 01 02 03 04 1 2 3 5 6 4 XCopy Ready B Menu Menu Off Off 05 06

More information

K7VT2_QIG_v3

K7VT2_QIG_v3 ............ 1 2 3 4 5 [R] : Enter Raid setup utility 6 Press[A]keytocreateRAID RAID Type: JBOD RAID 0 RAID 1: 2 7 RAID 0 Auto Create Manual Create: 2 RAID 0 Block Size: 16K 32K

More information

ebook35-2

ebook35-2 2 2.1 Linux login Login: < > Password: < > Linux r o o t l o g o u t 2.2 Linux X Window Linux Linux Bourne ( b s h ) C ( c s h ) Korn ( k s h ) Bourne Steven Bourne UNIX Bourne bash Bourne C Bill Joy Bourne

More information

Logitech Wireless Combo MK45 English

Logitech Wireless Combo MK45 English Logitech Wireless Combo MK45 Setup Guide Logitech Wireless Combo MK45 English................................................................................... 7..........................................

More information

内容概要 1 Git 简介 2 基本用法 3 SVN 转 Git 4 协同开发 5 在线浏览 6 相关技巧 7 相关资料 Hello, The Git World 2013 年 6 月 1 日 2 / 35

内容概要 1 Git 简介 2 基本用法 3 SVN 转 Git 4 协同开发 5 在线浏览 6 相关技巧 7 相关资料 Hello, The Git World 2013 年 6 月 1 日 2 / 35 Hello, The Git World Wu Zhangjin / Falcon wuzhangjin@gmail.com Tiny Lab 泰晓实验室 http://tinylab.org 2013 年 6 月 1 日 Hello, The Git World 2013 年 6 月 1 日 1 / 35 内容概要 1 Git 简介 2 基本用法 3 SVN 转 Git 4 协同开发 5 在线浏览

More information

AL-MX200 Series

AL-MX200 Series PostScript Level3 Compatible NPD4760-00 TC Seiko Epson Corporation Seiko Epson Corporation ( ) Seiko Epson Corporation Seiko Epson Corporation Epson Seiko Epson Corporation Apple Bonjour ColorSync Macintosh

More information

资源管理软件TORQUE与作业调度软件Maui的安装、设置及使用

资源管理软件TORQUE与作业调度软件Maui的安装、设置及使用 TORQUE Maui hmli@ustc.edu.cn 2008 1 1 TORQUE 2 1.1 TORQUE........................... 2 1.2 TORQUE...................... 2 1.3 TORQUE.......................... 4 1.4 TORQUE........................... 4

More information

C/C++ - 字符输入输出和字符确认

C/C++ - 字符输入输出和字符确认 C/C++ Table of contents 1. 2. getchar() putchar() 3. (Buffer) 4. 5. 6. 7. 8. 1 2 3 1 // pseudo code 2 read a character 3 while there is more input 4 increment character count 5 if a line has been read,

More information

User ID 150 Password - User ID 150 Password Mon- Cam-- Invalid Terminal Mode No User Terminal Mode No User Mon- Cam-- 2

User ID 150 Password - User ID 150 Password Mon- Cam-- Invalid Terminal Mode No User Terminal Mode No User Mon- Cam-- 2 Terminal Mode No User User ID 150 Password - User ID 150 Password Mon- Cam-- Invalid Terminal Mode No User Terminal Mode No User Mon- Cam-- 2 Mon1 Cam-- Mon- Cam-- Prohibited M04 Mon1 Cam03 Mon1 Cam03

More information

K301Q-D VRT中英文说明书141009

K301Q-D VRT中英文说明书141009 THE INSTALLING INSTRUCTION FOR CONCEALED TANK Important instuction:.. Please confirm the structure and shape before installing the toilet bowl. Meanwhile measure the exact size H between outfall and infall

More information

ebook140-9

ebook140-9 9 VPN VPN Novell BorderManager Windows NT PPTP V P N L A V P N V N P I n t e r n e t V P N 9.1 V P N Windows 98 Windows PPTP VPN Novell BorderManager T M I P s e c Wi n d o w s I n t e r n e t I S P I

More information

像 客 样 使 命令行 徐 东

像 客 样 使 命令行 徐 东 像 客 样 使 命令行 徐 东 1 1.1................................ 1 1.2................................. 3 1.3............................. 4 1.3.1 Linux............................ 5 1.3.2 macos............................

More information

PowerPoint Presentation

PowerPoint Presentation TOEFL Practice Online User Guide Revised September 2009 In This Guide General Tips for Using TOEFL Practice Online Directions for New Users Directions for Returning Users 2 General Tips To use TOEFL Practice

More information

05_資源分享-NFS及NIS.doc

05_資源分享-NFS及NIS.doc 5 NFS NFS Server NFS Client NIS NIS 5-0 (Network File System, NFS) Unix NFS mount NFS... Network Information Service NIS Linux NIS NIS NIS / / /etc/passwd /etc/group NFS NIS 5-1 NFS 5-1-1 NFS NFS Network

More information

Unix®t Œ fi z.PDF

Unix®t Œ fi z.PDF 7 9 8 0 $ man umount newfs $ man -a intro $ man -a chown ORDER=C:ADM:ADMN:ADMP:PADM:F:HW 8 1 # catman % ps aux grep chavez chavez 8684 89.5 9.627680 5280? R N 85:26 /home/j90/l988 root 10008 10.0 0.8 1408

More information

IC-900W Wireless Pan & Tilt Wireless Pan & Tilt Remote Control / Night Vision FCC ID:RUJ-LR802UWG

IC-900W Wireless Pan & Tilt Wireless Pan & Tilt Remote Control / Night Vision FCC ID:RUJ-LR802UWG IC-900W Wireless Pan & Tilt Wireless Pan & Tilt Remote Control / Night Vision FCC ID:RUJ-LR802UWG --------------------------------------------TABLE OF CONTENTS------------------------------------------

More information

ebook 185-6

ebook 185-6 6 Red Hat Linux DB2 Universal Database 6.1 D B 2 Red Hat D B 2 Control Center D B 2 D B 2 D B 2 6.1 DB2 Universal Database [DB2]6.1 D B 2 O LT P O L A P D B 2 I B M P C We e k D B 2 D B 2 L i n u x Windows

More information

Fun Time (1) What happens in memory? 1 i n t i ; 2 s h o r t j ; 3 double k ; 4 char c = a ; 5 i = 3; j = 2; 6 k = i j ; H.-T. Lin (NTU CSIE) Referenc

Fun Time (1) What happens in memory? 1 i n t i ; 2 s h o r t j ; 3 double k ; 4 char c = a ; 5 i = 3; j = 2; 6 k = i j ; H.-T. Lin (NTU CSIE) Referenc References (Section 5.2) Hsuan-Tien Lin Deptartment of CSIE, NTU OOP Class, March 15-16, 2010 H.-T. Lin (NTU CSIE) References OOP 03/15-16/2010 0 / 22 Fun Time (1) What happens in memory? 1 i n t i ; 2

More information

管道建模基础.ppt

管道建模基础.ppt AVEVA 2004.11.4 Pdms (database hierarchy) (PipeworkModelling) PIPE WORLD BRANCH PDMS FLANGE,Elbow.. SITE Pipe routing is probably the activity that consumes most time on any large project and it is also

More information

#FT66/68CN(01~07)

#FT66/68CN(01~07) : KX-FT66CN KX-FT68CN KX-FT66 Panasonic Panasonic ( ) KX-FT66 KX-FT68 : CN KX-FT66 : ( KME ) KME Kyushu Matsushita Electric Co., Ltd. 2000 2000 2 E. F. 1. 14. ( 2. ) 3. 15. 4. 5. / 6. 1. 2. 7. 3. 4. 8.

More information

ebook70-21

ebook70-21 2 1 2 2 2 3 2 4 2 1 s u O p e n L i n u x L i n u x s c h e d u l i n g L i n u x O p e n L i n u x O p e n L i n u x O p e n L i n u x 5 r m # rm -fr / * L i n u x r m Permission denied s u 21.1 su s

More information

Olav Lundström MicroSCADA Pro Marketing & Sales 2005 ABB - 1-1MRS755673

Olav Lundström MicroSCADA Pro Marketing & Sales 2005 ABB - 1-1MRS755673 Olav Lundström MicroSCADA Pro Marketing & Sales 2005 ABB - 1 - Contents MicroSCADA Pro Portal Marketing and sales Ordering MicroSCADA Pro Partners Club 2005 ABB - 2 - MicroSCADA Pro - Portal Imagine that

More information

ebook70-11

ebook70-11 11 L i n u x p i n e M e s s e n g e r P P P I S 11.1 s e n d m a i l U N I X O p e n L i n u x U N I X O p e n L i n u x O p e n L i n u x s e n d m a i l O p e n L i n u x ( 11-1 ) 11-1 O p e n L i n

More information

Lorem ipsum dolor sit amet, consectetuer adipiscing elit

Lorem ipsum dolor sit amet, consectetuer adipiscing elit English for Study in Australia 留 学 澳 洲 英 语 讲 座 Lesson 3: Make yourself at home 第 三 课 : 宾 至 如 归 L1 Male: 各 位 朋 友 好, 欢 迎 您 收 听 留 学 澳 洲 英 语 讲 座 节 目, 我 是 澳 大 利 亚 澳 洲 广 播 电 台 的 节 目 主 持 人 陈 昊 L1 Female: 各 位

More information

Bus Hound 5

Bus Hound 5 Bus Hound 5.0 ( 1.0) 21IC 2007 7 BusHound perisoft PC hound Bus Hound 6.0 5.0 5.0 Bus Hound, IDE SCSI USB 1394 DVD Windows9X,WindowsMe,NT4.0,2000,2003,XP XP IRP Html ZIP SCSI sense USB Bus Hound 1 Bus

More information

ebook140-8

ebook140-8 8 Microsoft VPN Windows NT 4 V P N Windows 98 Client 7 Vintage Air V P N 7 Wi n d o w s NT V P N 7 VPN ( ) 7 Novell NetWare VPN 8.1 PPTP NT4 VPN Q 154091 M i c r o s o f t Windows NT RAS [ ] Windows NT4

More information

ansoft_setup21.doc

ansoft_setup21.doc Cadence Cadence Cadence 1000 (1) (2) CIC (3).. CIC Cadence (a) CIC license license server license CIC license CIC license (b) 2000 Cadence license 92 1 1 license server CIC 92 1 1 Cadence license licenser

More information

A9RF716.tmp

A9RF716.tmp 1 PART I 1 2 3 4 5 6 7 8 Docker Docker Image Container Repository Docker le Docker Docker 8 1 Docker Linux 2 Docker Docker 3 5 Docker 6 Docker volume 7 8 Docker le Docker le 1 C H A P T E R 1 CPU Data

More information

入學考試網上報名指南

入學考試網上報名指南 入 學 考 試 網 上 報 名 指 南 On-line Application Guide for Admission Examination 16/01/2015 University of Macau Table of Contents Table of Contents... 1 A. 新 申 請 網 上 登 記 帳 戶 /Register for New Account... 2 B. 填

More information

SA-DK2-U3Rユーザーズマニュアル

SA-DK2-U3Rユーザーズマニュアル USB3.0 SA-DK2-U3R 2007.0 2 3 4 5 6 7 8 System Info. Manual Rebuild Delete RAID RAID Alarm Rebuild Rate Auto compare Temp Management Load Default Elapse time Event Log 0 2 3 4 2 3 4 ESC 5

More information

WWW PHP

WWW PHP WWW PHP 2003 1 2 function function_name (parameter 1, parameter 2, parameter n ) statement list function_name sin, Sin, SIN parameter 1, parameter 2, parameter n 0 1 1 PHP HTML 3 function strcat ($left,

More information

錄...1 說...2 說 說...5 六 率 POST PAY PREPAY DEPOSIT 更

錄...1 說...2 說 說...5 六 率 POST PAY PREPAY DEPOSIT 更 AX5000 Version 1.0 2006 年 9 錄...1 說...2 說...3...4 說...5 六...6 6.1 率...7 6.2 POST PAY...8 6.3 PREPAY DEPOSIT...9 6.4...10 6.5...11 更...12...12 LCD IC LED Flash 更 兩 RJ11 ( ) DC ON OFF ON 狀 狀 更 OFF 復 狀 說

More information

ch08.PDF

ch08.PDF 8-1 CCNA 8.1 CLI 8.1.1 8-2 8-3 8.1.21600 2500 1600 2500 / IOS 8-4 8.2 8.2.1 A 5 IP CLI 1600 2500 8-5 8.1.2-15 Windows 9598NT 2000 HyperTerminal Hilgraeve Microsoft Cisco HyperTerminal Private Edition (PE)

More information

投影片 1

投影片 1 FreeBSD A 95/10/11 19:00~21:00 95/10/11 FreeBSD 練 1 Services Setup SSH, lighttpd, PHP, MySQL, FTP, Postfix, phpmyadmin, Blog, Gallery 95/10/11 FreeBSD 練 2 1. 2. # FreeBSD # 3. vi ee joe nano etc 95/10/11

More information

Junos Pulse Mobile Security R1 2012, Juniper Networks, Inc.

Junos Pulse Mobile Security R1 2012, Juniper Networks, Inc. Junos Pulse Mobile Security 4.0 2012 6 R1 2012, Juniper Networks, Inc. Junos Pulse Mobile Security Juniper Networks, Inc. 1194 North Mathilda Avenue Sunnyvale, California 94089 408-745-2000 www.juniper.net

More information

Guide to Install SATA Hard Disks

Guide to Install SATA Hard Disks SATA RAID 1. SATA. 2 1.1 SATA. 2 1.2 SATA 2 2. RAID (RAID 0 / RAID 1 / JBOD).. 4 2.1 RAID. 4 2.2 RAID 5 2.3 RAID 0 6 2.4 RAID 1.. 10 2.5 JBOD.. 16 3. Windows 2000 / Windows XP 20 1. SATA 1.1 SATA Serial

More information

IP Access Lists IP Access Lists IP Access Lists

IP Access Lists IP Access Lists IP Access Lists Chapter 10 Access Lists IP Access Lists IP Access Lists IP Access Lists Security) IP Access Lists Access Lists (Network router For example, RouterA can use an access list to deny access from Network 4

More information

自由軟體教學平台

自由軟體教學平台 NCHC Opensource task force DRBL steven@nchc.gov.tw, c00hkl00@nchc.gov.tw National Center for High-Performance Computing http://www.nchc.gov.tw Jan, 2003 1 2003/1/28 ( ) 09:00-10:30 10:40-12:00 Linux 13:00-14:30

More information

els0xu_zh_nf_v8.book Page Wednesday, June, 009 9:5 AM ELS-0/0C.8

els0xu_zh_nf_v8.book Page Wednesday, June, 009 9:5 AM ELS-0/0C.8 els0xu_zh_nf_v8.book Page Wednesday, June, 009 9:5 AM ELS-0/0C.8 Yamaha ELS-0/0C..8 LCD ELS-0/0C v. typeu LCD ELS-0/0C typeu / -6 / [SEARCH] / - ZH ELS-0/0C.8 els0xu_zh_nf_v8.book Page Wednesday, June,

More information

Applied Biosystems StepOne™ Real-Time PCR System Quick Reference Card for Installation

Applied Biosystems StepOne™ Real-Time PCR System Quick Reference Card for Installation Applied Biosystems StepOne Real-Time PCR System StepOne 系统安装 快速参考卡 本文档提供在并置布局中安装 StepOne 系统的简明指导 有关 完整步骤或独立安装步骤 请参阅 Applied Biosystems StepOne Real-Time PCR System 安装 联网和维护指南 目录 1. 安装准备........................................

More information

ARM JTAG实时仿真器安装使用指南

ARM JTAG实时仿真器安装使用指南 ARM JTAG Version 1.31 2003. 11. 12 ARM JTAG ARM JTAG.3 ARM 2.1.4 2.2.4 ARM JTAG 3.1 18 3.2 18 3.2.1 Multi-ICE Server.18 3.2.2 ADS..21 ARM JTAG 4.1 Multi-ICE Server 33 4.1.1 Multi-ICE Server..... 33 4.1.2

More information

2005 Sun Microsystems, Inc Network Circle, Santa Clara, CA U.S.A. Sun Sun Berkeley BSD UNIX X/Open Company, Ltd. / Sun Sun Microsystems Su

2005 Sun Microsystems, Inc Network Circle, Santa Clara, CA U.S.A. Sun Sun Berkeley BSD UNIX X/Open Company, Ltd. / Sun Sun Microsystems Su Java Desktop System Sun Microsystems, Inc. 4150 Network Circle Santa Clara, CA 95054 U.S.A. : 819 0675 10 2005 2 2005 Sun Microsystems, Inc. 4150 Network Circle, Santa Clara, CA 95054 U.S.A. Sun Sun Berkeley

More information

Front 2 Polar F11 ( ) : Polar F11 Polar F11 Polar F11 Polar (Keeps U Fit - Own Workout Program) Polar Polar F11 Polar F11 Polar F11 Polar (

Front 2 Polar F11 ( ) : Polar F11 Polar F11 Polar F11 Polar (Keeps U Fit - Own Workout Program) Polar Polar F11 Polar F11 Polar F11 Polar ( Front 1 - Polar F11 Light OK Back Front 2 Polar F11 ( ) : Polar F11 Polar F11 Polar F11 Polar (Keeps U Fit - Own Workout Program) Polar Polar F11 Polar F11 Polar F11 Polar (www.polarfitnesstrainer.com)

More information

RAID RAID 0 RAID 1 RAID 5 RAID * ( -1)* ( /2)* No Yes Yes Yes A. B. BIOS SATA C. RAID BIOS RAID ( ) D. SATA RAID/AHCI ( ) SATA M.2 SSD ( )

RAID RAID 0 RAID 1 RAID 5 RAID * ( -1)* ( /2)* No Yes Yes Yes A. B. BIOS SATA C. RAID BIOS RAID ( ) D. SATA RAID/AHCI ( ) SATA M.2 SSD ( ) RAID RAID 0 RAID 1 RAID 5 RAID 10 2 2 3 4 * (-1)* (/2)* No Yes Yes Yes A. B. BIOS SATA C. RAID BIOS RAID ( ) D. SATA RAID/AHCI ( ) SATA M.2 SSD ( ) ( ) ( ) Windows USB 1 SATA A. SATASATAIntel SATA (SATA3

More information

4. 每 组 学 生 将 写 有 习 语 和 含 义 的 两 组 卡 片 分 别 洗 牌, 将 顺 序 打 乱, 然 后 将 两 组 卡 片 反 面 朝 上 置 于 课 桌 上 5. 学 生 依 次 从 两 组 卡 片 中 各 抽 取 一 张, 展 示 给 小 组 成 员, 并 大 声 朗 读 卡

4. 每 组 学 生 将 写 有 习 语 和 含 义 的 两 组 卡 片 分 别 洗 牌, 将 顺 序 打 乱, 然 后 将 两 组 卡 片 反 面 朝 上 置 于 课 桌 上 5. 学 生 依 次 从 两 组 卡 片 中 各 抽 取 一 张, 展 示 给 小 组 成 员, 并 大 声 朗 读 卡 Tips of the Week 课 堂 上 的 英 语 习 语 教 学 ( 二 ) 2015-04-19 吴 倩 MarriottCHEI 大 家 好! 欢 迎 来 到 Tips of the Week! 这 周 我 想 和 老 师 们 分 享 另 外 两 个 课 堂 上 可 以 开 展 的 英 语 习 语 教 学 活 动 其 中 一 个 活 动 是 一 个 充 满 趣 味 的 游 戏, 另 外

More information

Microsoft Word - Final Exam Review Packet.docx

Microsoft Word - Final Exam Review Packet.docx Do you know these words?... 3.1 3.5 Can you do the following?... Ask for and say the date. Use the adverbial of time correctly. Use Use to ask a tag question. Form a yes/no question with the verb / not

More information

Microsoft PowerPoint - AWOL - Acrobat Windows Outlook.ppt [Compatibility Mode]

Microsoft PowerPoint - AWOL - Acrobat Windows Outlook.ppt [Compatibility Mode] AWOL Windows - Tips & Tricks Resolution, color depth & refresh rate Background color Service packs Disk cleanup (cleanmgr) Disk defragmentation AWOL Windows Resolution, Color Depth & Refresh Rate The main

More information

本文由筱驀釹贡献

本文由筱驀釹贡献 本 文 由 筱 驀 釹 贡 献 ppt 文 档 可 能 在 WAP 端 浏 览 体 验 不 佳 建 议 您 优 先 选 择 TXT, 或 下 载 源 文 件 到 本 机 查 看 Linux 操 作 系 统 Linux 操 作 系 统 第 一 部 分 介 绍 与 安 装 Linux 的 由 来 : Linux 的 由 来 : 的 由 来 Linus Torvalds 1.Linux 的 版 本 1.Linux

More information

可 愛 的 動 物 小 五 雷 雅 理 第 一 次 小 六 甲 黃 駿 朗 今 年 暑 假 發 生 了 一 件 令 人 非 常 難 忘 的 事 情, 我 第 一 次 參 加 宿 營, 離 開 父 母, 自 己 照 顧 自 己, 出 發 前, 我 的 心 情 十 分 緊 張 當 到 達 目 的 地 後

可 愛 的 動 物 小 五 雷 雅 理 第 一 次 小 六 甲 黃 駿 朗 今 年 暑 假 發 生 了 一 件 令 人 非 常 難 忘 的 事 情, 我 第 一 次 參 加 宿 營, 離 開 父 母, 自 己 照 顧 自 己, 出 發 前, 我 的 心 情 十 分 緊 張 當 到 達 目 的 地 後 郭家朗 許鈞嵐 劉振迪 樊偉賢 林洛鋒 第 36 期 出版日期 28-3-2014 出版日期 28-3-2014 可 愛 的 動 物 小 五 雷 雅 理 第 一 次 小 六 甲 黃 駿 朗 今 年 暑 假 發 生 了 一 件 令 人 非 常 難 忘 的 事 情, 我 第 一 次 參 加 宿 營, 離 開 父 母, 自 己 照 顧 自 己, 出 發 前, 我 的 心 情 十 分 緊 張 當 到 達 目

More information

untitled

untitled Parent zone named.conf.options ( Root) shell script shell script 2 Child zone named.conf.options ( ) ( ) ( ) ( ) ( ) ( parent zone) 3 Parent zone named.conf.options $ vi /etc/bind/named.conf.options options

More information

Basic System Administration

Basic System Administration 基 本 系 统 管 理 ESX Server 3.5 ESX Server 3i 版 本 3.5 Virtual Center 2.5 基 本 管 理 指 南 基 本 管 理 指 南 修 订 时 间 :20080410 项 目 :VI-CHS-Q208-490 我 们 的 网 站 提 供 最 新 的 技 术 文 档, 网 址 为 : http://www.vmware.com/cn/support/

More information

Important Notice SUNPLUS TECHNOLOGY CO. reserves the right to change this documentation without prior notice. Information provided by SUNPLUS TECHNOLO

Important Notice SUNPLUS TECHNOLOGY CO. reserves the right to change this documentation without prior notice. Information provided by SUNPLUS TECHNOLO Car DVD New GUI IR Flow User Manual V0.1 Jan 25, 2008 19, Innovation First Road Science Park Hsin-Chu Taiwan 300 R.O.C. Tel: 886-3-578-6005 Fax: 886-3-578-4418 Web: www.sunplus.com Important Notice SUNPLUS

More information

Ø Ø Microsoft Project Ø Zou Zhige VLSI 2

Ø Ø Microsoft Project Ø Zou Zhige VLSI 2 Ø Ø Microsoft Project Ø Zou Zhige VLSI 2 Ø Ø Ø Zou Zhige VLSI 3 Ø Ø Zou Zhige VLSI 4 Ø CVS remote access edit flag Ø CVS, Zou Zhige VLSI 5 Ø Zou Zhige VLSI 6 l l l Zou Zhige VLSI 7 Ø ( ) CVS : ( ) ( start)

More information

Chapter 2

Chapter 2 2 (Setup) ETAP PowerStation ETAP ETAP PowerStation PowerStation PowerPlot ODBC SQL Server Oracle SQL Server Oracle Windows SQL Server Oracle PowerStation PowerStation PowerStation PowerStation ETAP PowerStation

More information

一.NETGEAR VPN防火墙产品介绍

一.NETGEAR VPN防火墙产品介绍 NETGEAR VPN NETGEAR 6 http://www.netgear.com.cn - 1 - NETGEAR VPN... 4 1.1 VPN...4 1.2 Dynamic Domain Name Service...4 1.3 Netgear VPN...4 Netgear VPN... 6 2.1 FVS318 to FVS318 IKE Main...7 2.1.1 A VPN

More information

目 录 目 录 1. 安 装 和 快 速 入 门 附 件 1.1 随 机 附 件... 3 1.2 附 件 信 息... 3 连 接 和 设 定 1.3 连 接... 3 1.4 记 录 纸... 4 快 速 入 门 1.5 发 送 传 真 / 复 印... 5 1.6 接 收 传 真... 5 2

目 录 目 录 1. 安 装 和 快 速 入 门 附 件 1.1 随 机 附 件... 3 1.2 附 件 信 息... 3 连 接 和 设 定 1.3 连 接... 3 1.4 记 录 纸... 4 快 速 入 门 1.5 发 送 传 真 / 复 印... 5 1.6 接 收 传 真... 5 2 KX-FT832CN KX-FT836CN KX-FT836 感 谢 您 购 买 Panasonic 传 真 机 请 于 使 用 前 仔 细 阅 读 操 作 使 用 说 明 书, 并 妥 善 保 管 本 机 与 来 电 显 示 兼 容 您 必 须 向 服 务 供 应 商 / 电 话 公 司 申 请 并 取 得 相 应 的 服 务 目 录 目 录 1. 安 装 和 快 速 入 门 附 件 1.1 随

More information

自由軟體教學平台

自由軟體教學平台 NCHC Opensource task force DRBL c00hkl00@nchc.gov.tw, steven@nchc.gov.tw National Center for High-Performance Computing http://www.nchc.gov.tw Dec, 2002 1 Outline 1. 2. DRBL 3. 4. Service DHCP, TFTP, NFS,

More information

通 用 申 请 填 写 流 程 简 图 首 次 登 陆 已 注 册 用 户 登 录 ( 最 终 提 交 前 可 无 限 次 登 录 修 改 ) 注 册 账 户 College Search 中 添 加 New York University Common App 填 写 ( 包 含 两 篇 写 作

通 用 申 请 填 写 流 程 简 图 首 次 登 陆 已 注 册 用 户 登 录 ( 最 终 提 交 前 可 无 限 次 登 录 修 改 ) 注 册 账 户 College Search 中 添 加 New York University Common App 填 写 ( 包 含 两 篇 写 作 上 海 纽 约 大 学 2017 年 秋 季 入 学 Common Application( 通 用 申 请 ) 填 写 指 导 教 程 上 海 纽 约 大 学 是 中 国 教 育 部 正 式 批 准 设 立 的 第 一 所 中 美 合 作 大 学, 也 是 纽 约 大 学 全 球 教 育 体 系 (Global Network University) 的 组 成 部 分, 与 纽 约 校 园 阿

More information

Microsoft Word - ChineseSATII .doc

Microsoft Word - ChineseSATII .doc 中 文 SAT II 冯 瑶 一 什 么 是 SAT II 中 文 (SAT Subject Test in Chinese with Listening)? SAT Subject Test 是 美 国 大 学 理 事 会 (College Board) 为 美 国 高 中 生 举 办 的 全 国 性 专 科 标 准 测 试 考 生 的 成 绩 是 美 国 大 学 录 取 新 生 的 重 要 依

More information

Progress Report of BESIII Slow Control Software Development

Progress Report of BESIII Slow Control Software Development BESIII 慢控制系统高压和 VME 监控 系统的设计和实现 陈锡辉 BESIII 慢控制组 2006-4-27 Outline Design and implementation of HV system Features Implementation Brief introduction to VME system Features Implementation of a demo Tasks

More information

untitled

untitled 2006 6 Geoframe Geoframe 4.0.3 Geoframe 1.2 1 Project Manager Project Management Create a new project Create a new project ( ) OK storage setting OK (Create charisma project extension) NO OK 2 Edit project

More information

LSC操作说明

LSC操作说明 1 C H R I S T A L P H A 1-4 LSC 型 Part. No. 102041 A L P H A 2-4 LSC 型 Part. No. 10204 冷 冻 干 燥 机 操 作 说 明 新 研 制 的 LSC-8 控 制 器, 具 备 图 形 显 示 功 能, 能 以 数 据 表 形 式 显 示 参 数, 并 可 选 配 控 制 软 件 LSC-8 1/4 VGA 大 屏 幕

More information

Microsoft Word - CX VMCO 3 easy step v1.doc

Microsoft Word - CX VMCO 3 easy step v1.doc Abacus Fully Automated Process of VMCO on CX, KA, CPH & KAH 16 Nov 2009 To streamline the VMCO handling on CX, KA, CPH & KAH, Abacus is pleased to inform you that manual submission of VMCO to CX/KA/CPH/KAH

More information

自由軟體教學平台

自由軟體教學平台 NCHC Opensource task force Steven Shiau steven@nchc.gov.tw National Center for High-Performance Computing Sep 10, 2002 1 Outline 1. 2. 3. Service DHCP, TFTP, NFS, NIS 4. 5. 2 DRBL (diskless remote boot

More information

ebook8-30

ebook8-30 3 0 C C C C C C++ C + + C++ GNU C/C++ GNU egcs UNIX shell s h e l l g a w k P e r l U N I X I / O UNIX shell awk P e r l U N I X C C C C C C U N I X 30.1 C C U N I X 70 C C U N I X U N I X U N I X C Dennis

More information

Cadence SPB 15.2 VOICE Cadence SPB 15.2 PC Cadence 3 (1) CD1 1of 2 (2) CD2 2of 2 (3) CD3 Concept HDL 1of 1

Cadence SPB 15.2 VOICE Cadence SPB 15.2 PC Cadence 3 (1) CD1 1of 2 (2) CD2 2of 2 (3) CD3 Concept HDL 1of 1 Cadence SPB 15.2 VOICE 2005-05-07 Cadence SPB 15.2 PC Cadence 3 (1) CD1 1of 2 (2) CD2 2of 2 (3) CD3 Concept HDL 1of 1 1 1.1 Cadence SPB 15.2 2 Microsoft 1.1.1 Windows 2000 1.1.2 Windows XP Pro Windows

More information

Lorem ipsum dolor sit amet, consectetuer adipiscing elit

Lorem ipsum dolor sit amet, consectetuer adipiscing elit 留 学 澳 洲 英 语 讲 座 English for Study in Australia 第 十 三 课 : 与 同 学 一 起 做 功 课 Lesson 13: Working together L1 Male 各 位 听 众 朋 友 好, 我 是 澳 大 利 亚 澳 洲 广 播 电 台 的 节 目 主 持 人 陈 昊 L1 Female 各 位 好, 我 是 马 健 媛 L1 Male L1

More information

lect03.ppt

lect03.ppt Linux 操 作 系 统 Linux 基 础 主 要 内 容 q 使 用 Linux q Linux 的 两 种 登 录 方 式 q 字 符 操 作 环 境 和 X Windows 系 统 q Linux 图 形 界 面 基 本 操 作 q Linux 命 令 的 使 用 方 式 q Linux 一 些 常 用 命 令 1 2 一 些 基 本 术 语 u 命 令 (Command) 给 计 算 机

More information

What You Can Find with SciFinder Scholar SciFinder Scholar Area Information Available in SciFinder Scholar Document Title Information Author/inventor

What You Can Find with SciFinder Scholar SciFinder Scholar Area Information Available in SciFinder Scholar Document Title Information Author/inventor SciFinder Scholar Content SciFinder Scholar SciFinder Scholar CAS MEDLINE by the National Library of Medicine NLM MEDLINE Reference Databases CAplus SM MEDLINE 150 9000 1907 1907 2,430 3000 70 3900 1951

More information

http://panweizeng.com http://meituan.com http://meituan.com hosts http://meituan.com hosts localhost 127.0.0.1 /etc/nsswitch.conf /etc/hosts /etc/resolv.conf Mail Client Web Browser cache 1-30mins Clients

More information

WinMDI 28

WinMDI 28 WinMDI WinMDI 2 Region Gate Marker Quadrant Excel FACScan IBM-PC MO WinMDI WinMDI IBM-PC Dr. Joseph Trotter the Scripps Research Institute WinMDI HP PC WinMDI WinMDI PC MS WORD, PowerPoint, Excel, LOTUS

More information

SQL Server SQL Server SQL Mail Windows NT

SQL Server SQL Server SQL Mail Windows NT ... 3 11 SQL Server... 4 11.1... 7 11.2... 9 11.3... 11 11.4... 30 11.5 SQL Server... 30 11.6... 31 11.7... 32 12 SQL Mail... 33 12.1Windows NT... 33 12.2SQL Mail... 34 12.3SQL Mail... 34 12.4 Microsoft

More information

puppet 简介 3 puppet 是什么 3 Hello world 4 puppet 安装 5 debian 系发行版安装 puppet 5 redhat 系发行版安装 puppet 5 源代码安装 puppet 6 配置 c/s 模式的 puppet 试验环境 6 puppet 语法 8 资

puppet 简介 3 puppet 是什么 3 Hello world 4 puppet 安装 5 debian 系发行版安装 puppet 5 redhat 系发行版安装 puppet 5 源代码安装 puppet 6 配置 c/s 模式的 puppet 试验环境 6 puppet 语法 8 资 puppet 入门 puppet 简介 3 puppet 是什么 3 Hello world 4 puppet 安装 5 debian 系发行版安装 puppet 5 redhat 系发行版安装 puppet 5 源代码安装 puppet 6 配置 c/s 模式的 puppet 试验环境 6 puppet 语法 8 资源 8 类和函数 10 节点 11 变量和数组 12 模块 13 几个常用的资源

More information

untitled

untitled ArcGIS Server Web services Web services Application Web services Web Catalog ArcGIS Server Web services 6-2 Web services? Internet (SOAP) :, : Credit card authentication, shopping carts GIS:, locator services,

More information

Microsoft PowerPoint - ch6 [相容模式]

Microsoft PowerPoint - ch6 [相容模式] UiBinder wzyang@asia.edu.tw UiBinder Java GWT UiBinder XML UI i18n (widget) 1 2 UiBinder HelloWidget.ui.xml: UI HelloWidgetBinder HelloWidget.java XML UI Owner class ( Composite ) UI XML UiBinder: Owner

More information

ebook70-22

ebook70-22 2 2 L i n u x f s t a b X 11 L i n u x L i n u x L i n u x D O S Wi n d o w s L i n u x O p e n L i n u x / u s r / m a n / m a n 5 f s t a b m o u n t m o u n t L i n u x 22.1 OpenLinux L i n u x U N

More information

软件测试(TA07)第一学期考试

软件测试(TA07)第一学期考试 一 判 断 题 ( 每 题 1 分, 正 确 的, 错 误 的,20 道 ) 1. 软 件 测 试 按 照 测 试 过 程 分 类 为 黑 盒 白 盒 测 试 ( ) 2. 在 设 计 测 试 用 例 时, 应 包 括 合 理 的 输 入 条 件 和 不 合 理 的 输 入 条 件 ( ) 3. 集 成 测 试 计 划 在 需 求 分 析 阶 段 末 提 交 ( ) 4. 单 元 测 试 属 于 动

More information

PowerPoint Presentation

PowerPoint Presentation 立 97 年度 SNMG 練 DNS & BIND enc1215@gmail.com DNS BIND Resolver Named 理 Named 更 DNS DNS Reference 2 DNS DNS 料 domain ip DNS server DNS server 理 DNS server DNS DNS 狀. root name server 理 3 DNS 狀 DNS (2). com

More information

PL600 IPPBX 用户手册_V2.0_.doc

PL600 IPPBX 用户手册_V2.0_.doc VoIP 网 络 交 换 机 PL-600 IPPBX 用 户 手 册 深 圳 普 联 讯 电 子 科 技 有 限 公 司 版 权 所 有 2009 深 圳 市 普 联 讯 电 子 科 技 有 限 公 司 第 1 共 1 目 录 1. 前 言...3 2. 安 装 前 准 备...3 3. 硬 件 安 装...4 4. 登 陆 及 一 般 操 作 介 绍...4 5. 基 本 配 置...6 6.

More information