最近用上了git工具来协作开发,因此git一些基本的命令要学习,由于很多工具如果不用,过一段时间就会忘记,所以索性就记录下来,下次查找也方便的多。为什么要写呢?因为网络上的东西都是别人的,终究不是自己的,不自己做下总结,是没有收获的。下面有关git多是互联网搜索到的和git的帮助文档,不过这一篇介绍的简单,以后深入了,在给大家讲的更详细些。
git环境的搭建这里就先不说。本篇主要是普通开发工作者在开发过程中所使用的命令。
作给开发者,别人搭建git服务器之后,你呢就配置个人的客户端:
git config --global user.name "yourname"
git config --global user.email "xxxx@gmail.com"
检出仓库:
git clone git://git.kernel.org/pub/scm/.../linux-2.6 my2.6
查看远程仓库:$ git remote -v
查看本地分支:git branch
查看远程分支:git branch -r
删除本地分支:git branch -d branch_name
选择分支:git check out branch_name
创建本地分支:git branch branch_name (注意提交代码前一定要建立本地分支)
拉取远程分支,并合并:git pull origin branch_remote:branch_local
查看状态:git status
查看详细修改:git diff
添加/删除文件:git add/rm filename
提交并添加信息:git commit -m "your descriptions"
查看历史日记:git log
本地分支推送:git push origin branch_local:branch_remote
还要介绍下恢复撤销命令:
git reset –mixed:此为默认方式,不带任何参数的git reset,即时这种方式,它回退到某个版本,只保留源码,回退commit和index信息 :git reset
git reset –soft:回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit即可。比如返回到commit前(含有index信息,这也是跟-mixed的区别) :git reset --soft HEAD^
git reset –hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容。如:git reset --hard HEAD^返回上一个版本
git revert:还原一个版本的修改,必须提供一个具体的Git版本号,例如'git revert bbaf6fb5060b4875b18ff9ff637ce118256d6f20',Git的版本号都是生成的一个哈希值
注:reset是指将当前head的内容重置,不会留任何痕迹。git reset --hard HEAD~3,会将最新的3次提交全部重置,就像没有提交过一样。根据--soft --mixed --hard,会对working tree和index和HEAD进行重置。revert是撤销某次提交,但是这次撤销也会作为一次提交进行保存。
至于还有许多的内容没有说,比如git的配置,git(client-server)环境的搭配,各个命令的详细用法没有说,以后会慢慢写出来给大家分享,也欢迎高手指点。
下面是网上找的别人的,我觉得写的不错,所以就复制了一部分
将 Current working directory 记为 工作目录(1)
将 Index file 记为 暂存区(2)
将 Git repository 记为 代码仓库(3)
他们之间的提交层次关系是 (1) -> (2) -> (3)
git add完成的是(1) -> (2)
git commit完成的是(2) -> (3)
git commit -a两者的直接结合
从时间上看,可以认为(1)是最新的代码,(2)比较旧,(3)更旧
按时间排序就是 (1) <- (2) <- (3)
it diff得到的是从(2)到(1)的变化
git diff –cached得到的是从(3)到(2)的变化
git diff HEAD得到的是从(3)到(1)的变化