37609317
1.安装cygwin
All -> Devel -> Git / Git-Completion。
想搭配使用git和svn的话,还应该安装上subversion-perl:
最好顺带安装上vim,因为git在commit的时候,强制要求必须写日志,
缺省使用的就是vi/vim编辑器
vi ~/.gitconfig
[user]
name=paohaijiao
email=goudingcheng@sina.com
也可以使用git config命令来完成:
git config --global user.name paohaijiao
git config --global user.email goudingcheng@sina.com
然后建立一个目录,并进入新目录,随便写几个文件,下面就可以用git来进行版本控制了:
git init
git add .
git commit
生产环境
git clone
git fetch/get merge
3.mvn war:war
创建版本库并提交
$ cd d:
$ mkdir test
$ cd test
Administrator@VJNPCNLRQR7J0ME /cygdrive/d/test
$ git init demo4
初始化空的 Git 仓库于 /cygdrive/d/test/demo4/.git/
$ cd demo4
$ ls -lat
总用量 4
drwxrwxr-x+ 1 Administrator None 0 一月 24 12:38 .git
drwxrwxr-x+ 1 Administrator None 0 一月 24 12:38 .
drwxrwxr-x+ 1 Administrator None 0 一月 24 12:38 ..
$ cd .git
Administrator@VJNPCNLRQR7J0ME /cygdrive/d/test/demo4/.git
$ ls
config description HEAD hooks info objects refs
$ cd ..
第一次版本的提交
$ vi a.txt
Administrator@VJNPCNLRQR7J0ME /cygdrive/d/test/demo4
$ git add a.txt
Administrator@VJNPCNLRQR7J0ME /cygdrive/d/test/demo4
$ git status
位于分支 master
初始提交
要提交的变更:
(使用 "git rm --cached <文件>..." 以取消暂存)
新文件: a.txt
Administrator@VJNPCNLRQR7J0ME /cygdrive/d/test/demo4
git commit -m "我的第一 "
[master(根提交) 0d9347c] 我的第一次
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 a.txt
2为什么一个工作区下有一个.get目录
3.git config各命令参数的区别
$ git config
用法:git config [<选项>]
配置文件位置
--global 使用全局配置文件
--system 使用系统级配置文件
--local 使用仓库级配置文件
-f, --file <文件> 使用指定的配置文件
--blob <数据对象 ID> 从给定的数据对象读取配置
操作
--get 获取值:name [value-regex]
--get-all 获得所有的值:key [value-regex]
--get-regexp 根据正则表达式获得值:name-regex [value-regex]
--get-urlmatch 获得 URL 取值:section[.var] URL
--replace-all 替换所有匹配的变量:name value [value_regex]
--add 添加一个新的变量:name value
--unset 删除一个变量:name [value-regex]
--unset-all 删除所有匹配项:name [value-regex]
--rename-section 重命名小节:old-name new-name
--remove-section 删除一个小节:name
-l, --list 列出所有
-e, --edit 打开一个编辑器
--get-color 获得配置的颜色:配置 [默认]
--get-colorbool 获得颜色设置:配置 [stdout-is-tty]
类型
--bool 值是 "true" 或 "false"
--int 值是十进制数
--bool-or-int 值是 --bool or --int
--path 值是一个路径(文件或目录名)
其它
-z, --null 终止值是 NUL 字节
--name-only 只显示变量名
--includes 查询时参照 include 指令递归查找
git 暂存 (1,2)
Administrator@VJNPCNLRQR7J0ME /cygdrive/d/test/demo4
$ cd ..
Administrator@VJNPCNLRQR7J0ME /cygdrive/d/test
$ mkdir demo5
Administrator@VJNPCNLRQR7J0ME /cygdrive/d/test
$ cd demo5
Administrator@VJNPCNLRQR7J0ME /cygdrive/d/test/demo5
$ git init
初始化空的 Git 仓库于 /cygdrive/d/test/demo5/.git/
Administrator@VJNPCNLRQR7J0ME /cygdrive/d/test/demo5
$ touch a.txt
Administrator@VJNPCNLRQR7J0ME /cygdrive/d/test/demo5
$ git commit -m "commit"
位于分支 master
初始提交
未跟踪的文件:
a.txt
提交为空,但是存在尚未跟踪的文件
Administrator@VJNPCNLRQR7J0ME /cygdrive/d/test/demo5
$ git add .
$ git commit -m "commit"
[master(根提交) 53dbfbd] commit
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 a.txt
$ echo "a">a.txt
Administrator@VJNPCNLRQR7J0ME /cygdrive/d/test/demo5
$ git status
位于分支 master
尚未暂存以备提交的变更:
(使用 "git add <文件>..." 更新要提交的内容)
(使用 "git checkout -- <文件>..." 丢弃工作区的改动)
修改: a.txt
修改尚未加入提交(使用 "git add" 和/或 "git commit -a")
Administrator@VJNPCNLRQR7J0ME /cygdrive/d/test/demo5
$ git commit -m "commit2"
位于分支 master
尚未暂存以备提交的变更:
修改: a.txt
修改尚未加入提交
1.修改不能直接提交
$ git add .
Administrator@VJNPCNLRQR7J0ME /cygdrive/d/test/demo5
$ git commit -m "commit2"或者直接git commit -a -m "commit2"
[master 5fdeb61] commit2
1 file changed, 1 insertion(+)
Administrator@VJNPCNLRQR7J0ME /cygdrive/d/test/demo5
$ git log
commit 5fdeb61b5f4e8ee536388d614b16672a78cccaf9
Author: paohaijiao <goudingcheng@sina.com>
Date: Sun Jan 24 13:07:30 2016 +0800
commit2
commit 53dbfbd846c22b7af923163e7d8328d6511f373f
Author: paohaijiao <goudingcheng@sina.com>
Date: Sun Jan 24 13:02:03 2016 +0800
commit
2git add暂存区的三个状态
git diff比较差异相当于pvcs的difference
git diff head
M 第一列,版本库和中间状态有差异
M第二列。工作区和当前文件有差异
git checkout .撤销
$
git history
理解暂存区
$ git branch
* master
$ git branch dev
$ git branch
$ git checkout dev
切换到分支 'dev'
Administrator@VJNPCNLRQR7J0ME /cygdrive/d/test/demo5
$ git branch
* dev
master
Administrator@VJNPCNLRQR7J0ME /cygdrive/d/test/demo5
$ git status
位于分支 dev
无文件要提交,干净的工作区
理解暂存区
git stash/git stash pop
转载于:https://my.oschina.net/goudingcheng/blog/608573