当前位置:编程学习 > 网站相关 >>

git入门

git的安装
1.直接从终端运行命令(Ubuntu)进行安装,版本可能不是最新的
 
[plain]  
sudo apt-get install git  
2.在官网下载源代码编译安装,参考目录下的INSTALL文件,下载地址
[html]  
make prefix=/usr/local all  
sudo make prefix=/usr/local install  
3.从git版本库克隆安装
[plain]  
git clone git://git.kernel.org/pub/scm/git/git.git  
cd git  
git fetch #更新  
git clean -fdx  
git reset --hard #清理工作  
git tag #显示一个版本号,比如v1.8.4  
git checkout v1.8.4  
make prefix=/usr/local all  
sudo make prefix=/usr/local install  
 
git简介
git是一个版本控制系统,git的工作目录由工作区、暂存区(stage)、版本库三部分构成,工作区就是存放代码的根目录,暂存区和版本库都是隐藏在.git目录中的数据文件中,用相关命令查看其属性。
 
git配置
[plain]  
git config --global user.name "test"  
git config --global user.email test@gmail.com  
git config --global color.ui true  
 
git基本操作
git init--工作目录的初始化,创建.git文件夹等
 
[plain] 
mkdir workspace  
cd workspace  
git init  
或者
[plain]  
git init workspace  
cd workspace  
git add--将工作目录中的改动添加到暂存区中,可以git help add 查看详细帮助
 
[plain]  
git add .  把本地所作的更改添加到暂存区中  
git add -u 只有被追踪的本地文件所作的更改添加到暂存区中,当删除/移动文件时用这条命令比较合适  
git add -A 把本地文件所有的更改添加到暂存区中,无论文件是否被追踪,适用于添加/删除/移动文件  
git add -f 强制添加被忽略的文件  
git commit--将暂存区中的更改提交到版本库中,git commit之前应该git add
 
[plain]  
git commit -m "Fisrt commit, git init."  
git commit -a -m "Second commit without git add." 加上-a选项,提交之前不必再执行git add  
 
git 查看操作
git status-- 查看工作区的状态
 
[plain]  
git status -s #文件名之前会有M/A等缩写,如果M在第一列,代表版本库与暂存区文件对比有改变,M在第二列时,代表暂存区与工作区有改变  
git log--查看提交记录
 
[plain]  
git log --oneline #以简单模式查看提交记录  
git diff--查看工作区/暂存区/版本库之间的差别
 
[plain]  
git diff #查看暂存区与工作区之间的差别  
git diff --cached #<span style="font-family:Arial,Helvetica,sans-serif">查看暂存区与</span><span style="font-family:Arial,Helvetica,sans-serif">版本库之间的差别</span>  
git ls-file--查看暂存区文件
 
[plain]  
git ls-files -v #查看暂存区文件  
git ls-files --with-tree=HEAD^ #查看最近一次提交到版本库中的文件  
git cat-file -p--查看文件内容,以及恢复个别文件
 
[plain]  
git cat-file -p HEAD^:file.txt #查看版本库中某个文件的内容  
git cat-file -p HEAD^:file.txt > file.txt #从版本库中恢复某个被误删除的文件  
 
git修改操作
git mv--移动或者重命名一个文件/目录/符号链接
 
git rm--从工作区和暂存区删除一个文件
 
[plain]  
git rm #同时删除工作区和暂存区的文件,rm只是删除工作区中的文件(没有真正的删除,以后提交到版本库这个文件<span style="font-family:Arial,Helvetica,sans-serif">还是存在</span><span style="font-family:Arial,Helvetica,sans-serif">)</span>  
.gitignore文件--忽略文件规则,git add时不会添加到暂存区(.gitignore可以放置在任何文件夹下,作用范围是所处目录以及子目录)
 
[plain] 
*~  #忽略vim备份文件  
*.swp #忽略vim缓存文件  
*.o #忽略编译文件  
 
git保存/恢复操作
git checkout--检出分支到工作区(默认对暂存区进行操作)
 
[plain]  
git checkout #汇总显示工作区暂存区与HEAD的差异  
git checkout --filename #用暂存区中过的filename覆盖工作区中的filename  
git checkout . #在工作区中取消相对于暂存区中的所有更改  
git reset--重置当前HEAD到指定的状态(默认对HEAD进行操作)
 
[plain] 
git reset [HEAD] #用HEAD指向的目录树重置暂存区,工作区不受影响,相当于撤销git add所作的更改  
git reset --filename #git add filename 的反向操作  
git reset --soft HEAD^ #暂存区和工作区不变,引用向前回退一次,以便git commit 从新提交  
git reset HEAD^ #工作区不变,暂存区和引用回退到上一次提交之前  
git reset --hard HEAD^ #引用回退一次,暂存区和工作区回退到上一次提交之前  
git stash--保存工作区中的进度
 
git stash list--显示保存的进度
 
git stash pop--恢复保存的进度
 
git stash apply --可以多次恢复保存的进度
 
git tag--创建里程碑
 
 
总结:
git init--初始化
 
git add--把工作区的更改添加到暂存区
 
git commit--把暂存区的更改提交到版本库
 
git reset--操作HEAD,影响(重置)暂存区
 
git checkout--操作暂存区,影响(重置)工作区
 
git status--查看工作区状态
补充:综合编程 , 其他综合 ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,