资源描述
1. GIT内部只有3种状态:已提交(committed),已修改(modified)和已暂存(staged)。
2. GIT的文件状态变化周期
3. 基本的GIT工作流程:
1). 在工作目录中修改某些文件。
2). 对修改后的文件进行快照,然后保存到暂存区域。
3). 提交更新,将保存在暂存区域的文件快照永久转储到 Git 目录中。
4. 常用命令:
*查看状态:git status
*跟踪新文件、暂存已修改文件:git add filename | git add .
*提交暂存区更新:git commit | git commit –m “message about commit”
*提交已跟踪文件:git commit –a | git commit –am “message about commit”
修改最后一次提交:git commit --amend
获取项目:git clone git://
比较未暂存文件修改:git diff filename | git diff
比较已暂存文件修改:git diff --cached filename | git diff –cached
移除文件:git rm filename
git rm同时也可以使用glob模式,如:git rm log/\*.log git rm \*~等
移动文件:git mv filename1 filename2
查看提交历史:git log
git log常用选项:-p 选项展开显示每次提交的内容差异; -2仅显示最近的两次更新; --stat仅显示简要的增改行数统计; --pretty使用指定格式显示log
取消已经暂存文件:git reset HEAD filename
取消对文件的修改:git checkout filename
查看当前远程仓库:git remote|git remote -v
添加远程仓库:git remote add [shortname] [url]
从远程仓库抓取数据:git fetch [remote-name]
推送数据到远程仓库- git push [remote-name] [branch-name]
查看远程仓库信息- git remote show [remote-name]
远程仓库重命名:git remote rename remote-name new-name
远程仓库删除:git remote rm remote-name
标签相关:git tag|git tag –a tag-name –m “message”| git push origin [tagname]
查看提交内容:git show SHA值
5. 忽略某些文件:编辑.gitignore文件,可以使用glob模式。
附:所谓的 glob 模式是指 shell 所使用的简化了的正则表达式。星号(*)匹配零个或多个任意字符;[abc] 匹配任何一个列在方括号中的字符(这个例子要么匹配一个 a,要么匹配一个 b,要么匹配一个 c);问号(?)只匹配一个任意字符;如果在方括号中使用短划线分隔两个字符,表示所有在这两个字符范围内的都可以匹配(比如 [0-9] 表示匹配所有 0 到 9 的数字)。
6. 设置GIT命令别名:
使用GIT别名,可以提高效率,使一些命令更容易理解,如:
git config --global alias.co checkout
git config --global alias.unstage ‘reset HEAD –‘
git config --global alias.last ‘log -1 HEAD’
7. GIT的对象:GIT的对象就是GIT对目录、文件、commit信息生成的校验和的集合。其中,目录被保存为树对象,里面保存着指向文件对象的指针,commit信息保存着commit自身的信息以及对应目录对象的指针。文件对象保存着文件内容。
8. 分支相关:
l 分支的本质就是指向commit对象的指针,默认使用的分支是master分支。
l GIT使用HEAD指针指向当前位置。
l 相关命令:
创建分支:git branch name
删除分支:git branch -d name
强制删除分支:git branch -D name(删除还未合并分支会报错,使用强制删除)
切换分支:git checkout name
合并分支:git merge name
列出当前所有分支:git branch|git branch –v
查看已经与当前分支合并的分支:git branch --merge
查看还未与当前分支合并的分支:git branch --no-merged
获取远程分支:git fetch origin
推送远程分支:git push origin name
将远程分支分化为本地分支:git checkout –b name origin/name
删除远程分支:git push origin :serverfix
调用合并工具:git mergetool
l git checkout –b name相当于git branch name;git checkout name
l Fast forward:当当前分支是要被合并的分支的直接上游,则合并只需要把分支指针直接右移,这种合并不需要解决任何冲突,成为快进(Fast forward)
展开阅读全文