Git简介及安装配置
Git内部有三种状态:已提交、已修改、已暂存(已修改的文件放在下次提交时要保存的清单)
每个项目都有一个git 目录,它是Git 用来保存元数据和对象数据库的地方。该目录非常重要,每次克隆镜像仓库的时候,实际拷贝的就是这个目录里面的数据。
• /etc/gitconfig文件:系统中对所有用户都普遍适用的配置。若使用git config 时
用--system 选项,读写的就是这个文件。
• ~/.gitconfig文件:用户目录下的配置文件只适用于该用户。若使用git config 时
用--global 选项,读写的就是这个文件。
• 当前项目的git 目录中的配置文件(也就是工作目录中的.git/config 文件):这
里的配置仅仅针对当前项目有效。每一个级别的配置都会覆盖上层的相同配置,所以
.git/config 里的配置会覆盖/etc/gitconfig 中的同名变量。
$ git config --global user.name "John Doe"
$ git config --global user.email johndoe@example.com
$git init 初始化项目
$git add 添加追踪文件、以追踪但又被更新的文件重新追踪,否则提交的只是更新之前的内容
$git status 查看状态
$git rm --cached 移除追踪但不删除文件
$git checkout 对已经追踪但又被更新的文件撤销更新
$git diff 当前工作目录的文件和已暂存的文件之间的差异
$git diff --cached 或者$git diff --staged 查看已暂存的和上次提交的快照之间的差异
$git commit -m 提交并写入提交说明
$git commit --amend 重新提交刚才的提交
$git commit -a 自动把追踪的所有文件暂存并提交
$git log 查看提交历史
-p 显示每次提交的差异
-2 最后两次提交
--stat 增改行数统计
--pretty 选项,可以指定使用完全不同于默认格式的方式展示提交历史
--pretty=oneline 一行显示一次提交
git reset HEAD <file>... 的方式取消暂存
git remote 命令,它会列出每个远程库的简短名字。在克隆完某个项目后,至少可以看到一个名为origin 的远程库,Git 默认使用这个
名字来标识你所克隆的原始仓库,也可以加上-v 选项(译注:此为—verbose 的简写,取首字母),显示对应的克隆地址
git fetch origin 会抓取从你上次克隆以来别人上传到此远程仓库中的所有更新(或是上次fetch 以来别人提交的更新)。有一点很重要,需要记住,fetch 命令只是将远端的数据拉到本地仓库,并不自动合并到当前工作分支,只有当你确实准备好了,才能手工合并。。
如果设置了某个分支用于跟踪某个远端仓库的分支(参见下节及第三章的内容),可以使用git pull 命令自动抓取数据下来,然后将远端分支自动合并到本地仓库中当前分支
默认情况下git clone 命令本质上就是自动创建了本地的master 分支用于跟踪远程仓库中的master 分支(假设远程仓库确实有master 分支)。所以一般我们运行git pull,目的都是要从原始克隆的远端仓库中抓取数据后,合并到工作目录中当前分支。
$ git branch testing 新建一个分支
$ git checkout testing 这样HEAD 就指向了testing 分支
要新建并切换到该分支,运行git checkout 并加上-b 参数:$ git checkout -b iss53
Create a new repository on the command line
touch README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin git@github.com:beyondlqh/ss.git
git push -u origin master
Push an existing repository from the command line
git remote add origin git@github.com:beyondlqh/ss.git git push -u origin master
当你把自己的公钥通过github的账户添加ssh key的时候,你的linux机器就可以ssh登陆git@github.com服务器 ssh -T git@github.com测试,这样你才能用ssh的方式去github上clone源码,通过https协议可以绕过这一限制。
分支:
git checkout -b [分支名] [远程名]/[分支名] 创建一个跟踪分支,跟踪远程分支。
$ git checkout --track origin/serverfix 同上,只不过是创建同名追踪分支
git push的时候加上-u参数会在config文件中追加跟踪分支的映射关系,这样git pull的时候就不用指定origin 和 branch,直接git pull即可。