上班用的版本控制工具是svn,听说github最近挺火,就想顺便学习一下git。
看的书是progit。弄一点基础好了。
1.git和其他版本控制系统的差别。
git关心数据整体的变化,其他系统关心文件的具体差异。
git并不保存这些前后变化的差异数据。实际上,git更像是把变化的文件作快照后,记录在一个微型的文件系统中。每次提交更新时,它会纵览一遍所有文件的指纹信息并对文件作一快照,然后保存一个指向这次快照的索引。为提高性能,若文件没有变化,git不会再次保存,而只对上次保存的快照作一连接。
2.近乎所有的操作都可以本地执行。
3.数据的指纹,一组哈希码。所有保存的数据靠哈希码唯一标识和索引。
4.三种状态
committed(已提交),modified(已修改),staged(已暂存)。
基本的git工作流程:
在工作目录修改文件。
对这些修改作快照,保存到暂存区域。
提交更新,将保存在暂存区域的文件快照转储到git目录中。
一些基本的命令如下:
1.对当前目录进行git管理。在此目录下执行:
git init
2.复制远程的代码库
git clone git://github.com/schacon/grit.git
git clone git://github.com/schacon/grit.git mygrit
3.检查当前文件状态
git status
git文件状态变化周期
4.文件从untracked->tracked,从modified->staged
git add
修改的文件要先add到暂存态,再commit到git仓库。
5.忽略某些文件。
创建一个.gitignore文件,列出需要忽略的文件模式。
#this is to ignore sth
*.a
6.查看修改之后还未暂存的文件区别
git diff
查看已暂存文件和上次提交时文件的区别
git diff --staged
7.提交更新
git commit -m “this is log message” xxx.xxx
8.跳过暂存
git commit -a -m “this is log message” xx.xxx
9.移除文件
git rm
移除但不删除文件(使文件不被跟踪)
git rm -cached
10.重命名
git mv test.txt test.t
等价于
mv test.txt test.t
git rm test.txt
git add test.t
11.可视化查看log
gitk
12.修改最后一次提交
git commit --amend
git commit -m “initial commit”
git add forgotten.txt
git commit --amend
以上三条命令最终得到一个提交,第二个提交命令修正了第一个提交内容。
13.取消已暂存的文件
git reset HEAD xxx.xx
14.取消对文件的修改
git checkout xxx.xxx
15。查看当前的远程仓库
git remote
git remote -v
其中只有origin仓库可以push
远程库要理解分支的概念,暂时不看了。
git的命令行工具用起来感觉…颜色不错
看的书是progit。弄一点基础好了。
1.git和其他版本控制系统的差别。
git关心数据整体的变化,其他系统关心文件的具体差异。
git并不保存这些前后变化的差异数据。实际上,git更像是把变化的文件作快照后,记录在一个微型的文件系统中。每次提交更新时,它会纵览一遍所有文件的指纹信息并对文件作一快照,然后保存一个指向这次快照的索引。为提高性能,若文件没有变化,git不会再次保存,而只对上次保存的快照作一连接。
2.近乎所有的操作都可以本地执行。
3.数据的指纹,一组哈希码。所有保存的数据靠哈希码唯一标识和索引。
4.三种状态
committed(已提交),modified(已修改),staged(已暂存)。
基本的git工作流程:
在工作目录修改文件。
对这些修改作快照,保存到暂存区域。
提交更新,将保存在暂存区域的文件快照转储到git目录中。
一些基本的命令如下:
1.对当前目录进行git管理。在此目录下执行:
git init
2.复制远程的代码库
git clone git://github.com/schacon/grit.git
git clone git://github.com/schacon/grit.git mygrit
3.检查当前文件状态
git status
git文件状态变化周期
4.文件从untracked->tracked,从modified->staged
git add
修改的文件要先add到暂存态,再commit到git仓库。
5.忽略某些文件。
创建一个.gitignore文件,列出需要忽略的文件模式。
#this is to ignore sth
*.a
6.查看修改之后还未暂存的文件区别
git diff
查看已暂存文件和上次提交时文件的区别
git diff --staged
7.提交更新
git commit -m “this is log message” xxx.xxx
8.跳过暂存
git commit -a -m “this is log message” xx.xxx
9.移除文件
git rm
移除但不删除文件(使文件不被跟踪)
git rm -cached
10.重命名
git mv test.txt test.t
等价于
mv test.txt test.t
git rm test.txt
git add test.t
11.可视化查看log
gitk
12.修改最后一次提交
git commit --amend
git commit -m “initial commit”
git add forgotten.txt
git commit --amend
以上三条命令最终得到一个提交,第二个提交命令修正了第一个提交内容。
13.取消已暂存的文件
git reset HEAD xxx.xx
14.取消对文件的修改
git checkout xxx.xxx
15。查看当前的远程仓库
git remote
git remote -v
其中只有origin仓库可以push
远程库要理解分支的概念,暂时不看了。
git的命令行工具用起来感觉…颜色不错