初始化用户信息
* git config --global user.name XXX 用户名
* git config --global user.email XXX 用户邮箱
* git config –list #查看用户信息
* 这些信息会在你每一次的提交中附加
clone
* git clone ssh://[email protected]/usr/local/git/项目名称
* git:// http:// https:// 协议需要服务器支持
init
* git init
用"git init"初始化的版本库用户也可以在该目录下执行所有git方面的操作。但别的用户在将更新push上来的时候容易出现冲突
* git --bare init
只会生成一类文件:用于记录版本库历史记录的.git目录下面的文件;而不会包含实际项目源文件的拷贝,也就是说没有工作树
初始化代码仓库的时候最好使用 git --bare init
团队工作基本流程
* git add 改动的文件
* git commit #(提交至本地)
* git pull #(将服务器项目与本地项目合并)
* git push #(将本地项目上传至服务器)(在提交前要git pull --rebase一下,确保当前的本地的代码为最新。)
add
* 向git库中添加或删除文件
* git add XX #加单个文件
* git add . #加所有
* git add [path]会把对应目录或文件,添加到stage状态
* git add . 会把当前所有的untrack files和changed but not updated添加到stage状态,
* 想移除某一个文件的暂存时用unstage
Commit
* git commit –m “XXXX” #直接添加简单提交信息,添加注释
* git status #查看当前代码库的状态
* git log #查看版本信息
* git log –p #查看版本信息并显示每次修改的diff
* git show 6bcfaed…. #查看指定版本信息
* #(show后面为每次提交系统自动生成的一串哈希值)
* git show 6bcfaed #一般只使用版本号的前几个字符即可
pull
* git pull mexdia master
* 意思是将叫mexdia的远程库拉下来,并且与本地master分支合并
* 这样本地的代码就和服务器同步为最新的了
* git pull = git fetch + git merge
* git pull origin master =>
* git fetch origin master:tmp
* git diff tmp
* git merge tmp
push
* git push mexdia master
将本地最新代码更新到服务器上
Remote
* git remote add mexdia ssh://[email protected]/usr/local/git/项目名称
* git remote show
* git remove <remote >
* git rename <remote> <newname>
branch
git分支操作在本地建立分支,然后与本地主分支合并,最终提交到服务器。有效的避免了因个人操作不当向服务器提交过多脏数据,避免频繁git clone服务器来更新本地库。
* 分支操作指令:
* 1, 建立分支
* git branch AAA #建立分支AAA
* 2,分支切换
* git checkout AAA #从当前分支切换到AAA分支
* 3, 将分支与主枝master合并
* git checkout master #(首先切换回主枝)
* git merge AAA #(将分支AAA与主枝合并)
* 4, 当前分支查看
* git branch #默认有master(也称为主枝)
* git branch –a 查看当前所有分支
* 5, 删除分支
* git branch –d AAA #删除分支AAA
reset
* git reset --hard +版本号(哈希码前几位就ok)
* git reset HEAD^ 回滚一个版本
* git reset HEAD^^ 回滚两个版本,依此类推
参考资料
* Git分支管理策略- 阮一峰
* http://www.ruanyifeng.com/blog/2012/07/git.html
* Git远程操作详解,有图解,比较直观
* http://www.ruanyifeng.com/blog/2014/06/git_remote.html