1、 安装git
#安装git核心
sudo apt-get install git-core
#安装git gui
sudo apt-get install git-gui
#安装git doc
sudo apt-get install git-doc
#安装git-svn
sudo apt-get install git-svn
#安装git-cvs
sudo apt-get install git-cvs
#安装gitweb
sudo apt-get install gitweb
#安装git-daemon-run
sudo apt-get install git-daemon-run
#安装git-email
sudo apt-get install git-email
#安装git-arch
sudo apt-get install git-arch
#安装gitk
sudo apt-get install gitk
#在终端上输入 git 测试下是否安装 git
cfddream@ubuntu:~$ git
usage: git [--version] [--exec-path[=GIT_EXEC_PATH]] [-p|--paginate|--no-pager] [--bare] [--git-dir=GIT_DIR] [--work-tree=GIT_WORK_TREE] [--help] COMMAND [ARGS]
其中:git 包说明
git包是git的核心程序,它只包括最小的依赖关系,如果只安装git包的话,那么一些git的外围扩展将无法使用。
git-all包包括了所有的集成在git上的外围扩展功能。
git-arch包是为了兼容arch仓库的。大家或许听说过linux的发行版本arch,但现在说的arch和这个发行版本似乎没有必然关系。 git-arch中的arch是gnu arch,它是一个类似于cvs、sccs、svn的版本控制系统。git-arch包用于支持从gnu arch仓库导入到git仓库。
git-cvs包用于支持从cvs仓库导入到git仓库。
git-daemon包用于支持用户使用git://形式的命令来访问git仓库。
git-email包支持使用git发送邮件。
git-gui包是一个基于Tk的git程序,也就是说是带有GUI的,可以用鼠标点击操作的git。
git-svn包用于支持从svn仓库导入到git仓库。
gitk包是一个带有Tcl/Tk GUI的可以用来浏览git仓库历史信息的桌面程序。
gitweb包则是一个成熟的基于web的用于git仓库管理的web程序
2、 建立版本库
1)、 建立一个目录保存当前的代码
#mkdir project
2)、 将代码拷贝到此目录
3)、 创建版本库:
# git init-db
注: 这样只是初始化一个版本库而已, 还没有跟踪任何文件
4)、 添加跟踪信息:
# git add .
注: 这样就把当前目录全部纳入跟踪范围了
5)、 查看版本库状态:
#git status
注: 这个会输出状态信息,这里照样省略输出
6)、 提交版本库:
#git commit -m "my first commit comment"
注: -m 是注释选项, 后面的参数是注释的短句
完成版本库的建立
3、常用命令
git init 初始化一个文件夹受git管理
git add/rm file
git mv file1 file2 重命令文件
git commit -m "msg"
git status
git log
git diff --staged 查看Add了的文件的变化
git diff 查看没有Add的文件变化
git checkout -- file 将当前分支的文件file检出
git reset HEAD file 将添加到stage中的file unstage。即像git add file后可以通过git reset HEAD file将此文件从stage中unstage。
git commit --amend -m "msg" 会同上一次的commit内容和本次的内容一起作为一次提交。--amend只能作用于最后一次提交。
git checkout partofversionstring -- file 将当前分支中版本号以versionprefix开头的版本检出到本地文件。
git revert partofversionstring 将某分支的提交内容反转。添加的文件删除,删除的文件添加,修改的还原。反转本身是一次commit。如果partofversionstring版本中 的文件在后续版本中有了变化,git将会对它执行merge操作。
git reset option partofversionstring : where option are
--soft : does not change staging index or working directory
--mixed (default) : changes staging index to match repository && does not change working directory
--hard : changes staging index and working directory to match repository
git reset HEAD file : unstage file
git clean : removing untracked files ,加上-n选项,可以列举会发生哪些操作,而不实际执行。