您的位置:首页 > 其它

Git 终端使用手册

2014-11-21 15:03 134 查看
概述
版本管理要管理什么 代码,设计文档是需要全部纳入版本管理的,而临时文件,log文件等不能加入到版本管理中。在Git使用过程中,需要想清楚一个文件是否需要纳入版本管理。目标是,不遗漏一个需要管理的文件,也不添加多余的文件到Git中。
什么时候提交(commit) 尽可能地每一个小功能点提交一次,避免功能混杂的提交。提交应该带有清晰的message。
什么时候查看状态 保持随时查看状态的习惯,通过查看状态,防止有非预期的文件改动。
配置
git config --global
user.name "Yuxiaojing"

 git config --global user.email
yuxiaojingyxj@163.com

git config --global alias.last 'log -1 HEAD'

使用 --global 参数,
配置的是当前用户 不适用上述参数, 配置的是当前目录 合理使用改参数, 可以让你在公司git和公网git上可以使用不同的名字,邮箱
git config --list 用该命令查看已经生效的config, 如果有重复的条目, 生效的是最后一个.
基本用法
git init
git add
作用1: 添加新文件
作用2: 将文件放入 stage 区. (见git commit)
作用3: 标记文件冲突解决
尽量避免 git add .
git commit
Changes to be committed:
Changes not staged for commit:
git commit 只会提交存于 stage 的文件
stage 区可以理解为提交暂存区
git commit -a 不建议使用
-a 代表 git
add
-m 注释信息应该清晰明了, 方便以后查找
不要提交没有意义的空白字符
git commit --amend
用于修改刚做的提交
将需要修改的文件加入暂存区后运行 git commit --amend
git checkout
作用1: 取消未在暂存区的文件改动
作用2: 切换分支
作用3: 生成新的branch, 并切换到新分支
git rm
尽量使用 git rm 命令删除文件
git rm -f 强制删除已经修改的文件
git rm --cached 从git中删除, 但保留文件
处理在工作目录里删除的文件
在工作目录中删除文件 example.txt
git add --all example.txt 这里 git
add 的含义是将该改动加入暂存区
继续git commit
git mv
用于移动文件或者文件改名
git clone
尽量使用ssh协议, http协议似乎需要每次都输入账号密码
git push
git pull
git status
操作前查看状态, 避免误操作
经常查看状态
git diff
git diff 默认只作用于 not stage 的文件
git diff --cached 和 git
diff --staged
建议使用 git difftool 代替
git difftool
使用 git config 设置符合自己习惯的比较工具
git log
gitignore
养成设置gitignore文件习惯
remote 管理
git remote -v
git remote add github_repo git@github.com:cocos2d/cocos2d-x.git
git remote rename github_repo gh_repo
git remote rm github_repo
git fetch github_repo
git remote show github_repo
查看remote信息
branch 管理
git branch
branch 列表
git branch bugFix
创建新的 branch
git checkout -b bugFix
创建新的分支并切换到新分支
git branch -d
删除分支
git branch --merged
查看已经合并到当前分支的分支
git branch --no-merged
查看未合并到当前分支的分支
git 远程分支
git push origin bugFix 推送本地分支到远程
git push origin :bugFix 删除远程分支
submodule
git submodule
git submodule add git@github.com:cocos2d/cocos2d-x.git
lib/cocos2d-x
git submodule init
git submodule update
git submodule update --init
git submodule update --init --recursive
git submodule删除
需要先提交submodule, 再提交父库, 防止父库指向了不不存在的子库
git reset
作用1: 取消已经暂存的文件
git merge
冲突的解决
应当禁止未解决的冲突提交
rebase
什么时候使用rebase?
在处理rebase过程中不要commit
已经发布到了公共仓库的提交, 不可以再对该分支做rebase操作
git tag
git stash

附录:
A. 参考资料 http://git-scm.com/book/zh/ http://ihower.tw/git/files/ihower-git.pdf http://danielkummer.github.io/git-flow-cheatsheet/index.zh_CN.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  git 终端