git初步

文件的三种状态

任何一个文件, 在git内都有三个状态:

  1. 已提交(committed): 表示已经安全地保存在本地数据库中了

  2. 已修改(modified): 表示修改了某个文件, 但还没保存提交

  3. 已暂存(staged): 表示把已经修改的文件放在下次提交时要保存的清单中

文件流转的三个工作区域: git工作目录, 暂存区域, 本地仓库:

基本命令

  1. 初始化一个项目目录

git init

  2. 查看当前文件状态

git status

  3. 解设创建一个README文件, 下面开始跟踪这个新文件

git add README

下面修改REDEME文件, 这时会出现'Changes not staged for commit', 说明跟踪的文件发生了变化, 但还每放到暂存区, 要暂存这次更新, 需要运行

git add README

可以看出, 根据文件状态的不同, git add的效果不同, 这是个多功能命令.

  4. 通常有些有些文件不需要纳入git管理, 这里我们可以忽略它: 创建一个.gitignore文件, 写上要忽略的内容, 如:

# 此为注释 – 将被 Git 忽略
# 忽略所有 .a 结尾的文件
*.a
# 但 lib.a 除外
!lib.a
# 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO
/TODO
# 忽略 build/ 目录下的所有文件
build/
# 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt
doc/*.txt
# ignore all .txt files in the doc/ directory
doc/**/*.txt

  5. git status仅仅列出了修改了的文件, 若要查看具体修改了上面地方, 使用:

git diff

此命令比较的是工作目录中当前文件和暂存区域快照之间的差异, 也就是修改之后还没有暂存起来的变化内容. 若要看已经暂存起来的文件和上次提交时的快照之间的差异,可以用 

git diff --cached 

  6. 提交更新

git commit -m "关于这次提交的说明"

  7. 从暂存清单中移除某个文件, 并连带从工作目录删除这个文件

git rm filename

若我们只想把文件从gi暂存区删除, 但仍希望留在工作目录, 使用

git rm --cached filename 

  8. 对git中文件改名:

git mv filename new_filename

  9. 查看提交历史

git log -p -2

-p 参数显示每次提交的内容差异, -2仅显示最近俩次的更新

撤销操作

  1. 修改最后一次提交

若我们提交完了发现漏掉几个文件,或其他原因, 可以撤销刚才的提交操作:

git commit --amend

  2. 取消已暂存的文件

git reset HEAD filename

  3. 取消对文件的修改

git checkout -- filename
posted @ 2014-05-29 15:20  TonyZheng  阅读(125)  评论(0编辑  收藏  举报