git 使用

三个状态

文件由 git 维护三中状态

  1. modified:文件被改动,但还没有被提交
  2. staged:标记被改动的文件到下次需要提交的文件快照
  3. committed:文件已经被安全保存到本地

可以使用命令 git status 查看文件状态,可以添加参数 -s 查看简单信息

git status -s

创建仓库

要对现有的某个项目开始用 git 管理,只需到此项目所在的目录执行

git init

初始化后,在当前目录下会出现一个名为 .git 的目录,所有 git 需要的数据和资源都存放在这个目录中

也可以直接复制线上仓库到本地

git clone [url]

url 支持三种形式

  1. git://
  2. http(s)😕/
  3. user@server:/path.git

身份认证

每次 git 提交时都会引用这两条信息,说明是谁提交了更新,所以新建一个 git 仓库后需要设置用户信息

git config --global user.name "Your username"
git config --global user.email "Your email"

使用了 --global 选项后就可以不用每次设置了

基本命令

可以使用以下命令使文件在三种状态间切换

也可以跳过中间状态切换

除了这几条命令,如果想对刚才做的 commit 做适当修改,可以紧接着写修改的操作,然后执行命令

git commit --amend

如果刚才提交完没有作任何改动,直接运行此命令的话,相当于有机会重新编辑提交说明,但将要提交的文件快照和之前的一样

如果刚才提交时忘了暂存某些修改,可以先补上暂存操作,然后再运行 --amend 提交:

git commit -m 'initial commit' 
git add forgotten_file
git commit --amend

上面的三条命令最终只是产生一个提交,第二个提交命令修正了第一个的提交内容。

删除文件

如果只是简单地从工作目录中手工删除文件,运行 git status 时就会在 Changes not staged for commit 的提示

要从 Git 中移除某个文件,就必须要从已跟踪文件清单中移除,然后提交。可以用以下命令完成此项工作

git rm <file>

如果删除之前修改过并且已经放到暂存区域的话,则必须要用强制删除选项 -f

git rm -f <file>

如果把文件从暂存区域移除,但仍然希望保留在当前工作目录中,换句话说,仅是从跟踪清单中删除,使用--cached 选项即可

git rm --cached <file>

diff

git status 的显示比较简单,仅仅是列出了修改过的文件,如果要查看具体修改了什么地方,可以用 git diff 命令

git diff 比较的是工作目录中 当前文件暂存区域快照 之间的差异,也就是修改之后还没有暂存起来的变化内容

若要看 已经暂存起来的文件上次提交时的快照 之间的差异,可以用 git diff --cached 命令

branch

查看分支

git branch

切换分支

git checkout <branch_name>

新建分支

git branch <branch_name>

新建并切换分支

git checkout -b <branch_name>

删除本地分支

git branch -d <branch_name>

删除远程分支

git push origin :<branch_name>

参考

git - 简易指南

A Visual Git Reference

Pro Git

代码回滚:Reset、Checkout、Revert的选择

posted @ 2016-05-29 19:58  谦行  阅读(2789)  评论(1编辑  收藏  举报