http://git.oschina.net/progit/ 一个GIT的说明
在github COPY一个URL
在仓库里设置帐号密码 git config 里 url = https://username:xxxxxxx@github.com/jsonxia/starDemo.git
cd :e
cd.. 返回上一级
ls 浏览这一级目录
notepad hello.txt 用记事本创建一个TXT文件
tab 自动补全,如忘记 git bran 按上TAB键,补全为branch
设置操作别名 git config --global alias.co checkout 把CHECKOUT 设为CO ,
mkdir git 创建一个目录
git clone xxxx.com
git config --global user.name 'jsonxia'
git config --global user.email '39xxxx@qq.com'
git config --list查看配置
master 主分支
git 三个区 工作区 暂存区(过度层,避免误操作,) 版本库
git status
git add
- name
- . 全部提交到
// git reset HEAD drag.html 撤回来 . 撤回全部
// git add drag.html 绿色 暂存区,红色,工作区,数字代表意义 第一增加的文件,第二修改,第三,删除
git commit
- -m // -m "chage demo" 不用打开记事本
- -a -m // git commit -a -m 'xxxxxxxxxxxxxxxthis is comment' 由工作区,直接加到版本库
git log 如果显示不完,按ENTER 可再显示
Q 是退出 对比
git diff 工作区与缓冲区的对比
git diff --cache 或 --staged 版本区与缓冲区的对比
git master 工作区与版本库的对比
git reset HEAD <file.name> 从暂存区退回到工作区
git checkout -- drag.html 工作区撤回到版本区
git commit --amend
git commit -m 'xxxxxxxxxx' --amend 把上一次提交撤消,再把暂存区提交;
删除
git rm xxx.file 把暂存区的文件去掉,前提是,工作区删去了。
git rm -f xxx.file 直接把暂缓区和工作区的文件去掉
git rm --cached xxx.file 只把暂存区的文件去掉,(工作区的可以不删掉)
恢复
git log 看到commit 后面有一个COMMIT ID (拷贝一部分就行了) /// demo git checkout dkfjdfjdlf drag.js 对一个文件的还原
git checkout commitID 对一个文件的版本进行控制 或者下面的方法是对某一版本进行还原
git reset --hard dfdkfj12121 对一个版本的还原
git reset --hard HEAD^ HEAD表示一个指针,^ 表示前一个版本 往以前的版本回复
git reset --hard HEAD^2 前两个版本
git reflog 显示日志操作
git reflog --hard xxx1213 --gl
git 远程
git remote // origin 默认CLONE 的远程仓库名字 git remote add xxx 更改名字
git remote -v 更改远程仓库上的名字
git push origin master 同步分支
权限
+- 添加新的协作人 new collarators ----------- watching
同步更新
git fetch 从远程拉数据下来,但不合并。。要手动合并
git diff master origin/master 看冲突
git merge origin/master 合并冲突,合并后有 <<< 》》》 这些符号
代码手动更新后, git commit -a -m 'fdxxxxxxxxxxx' git push origin master
git push 从远程拉数据下来,合并分支
git pull
fork 创建一个分支 在没权限的情况下 FORK 分叉 然后CLONE到本地,修改
去网站上 有个PULL REQUEST ----》NOW PULL REQUEST 按钮
也可以,对小的项目,直接在网页上编辑,修改
分支
branch
git brach 查看分支
git branch new1 创建NEW1的分支
git checkout new1 切换到NEW1的分支
git checkout -b new2 创建并切换到new2的分支
git checkout master切换到主分支
把分支合并到MASTER上
git checkout master git merge new1 合并遇到冲突时,可以GIT STATUS 查看信息,再手动把冲突修改,再git commit -a -m 'xxx' 提交一次
git branch --merged 查看当前分支的合并分支g
git branch --no-merged 查看没合并的分支
git branch -d new1 删除合并后的分支
git branch -D new1 强制删除
同步到github 上 git push origin new1
发布版本
git tag v1.0
git push origin v1.0
git 注释
二、Commit message 的格式
每次提交,Commit message 都包括三个部分:Header,Body 和 Footer。
<type>(<scope>): <subject>
// 空一行
<body>
// 空一行
<footer>
其中,Header 是必需的,Body 和 Footer 可以省略。
不管是哪一个部分,任何一行都不得超过72个字符(或100个字符)。这是为了避免自动换行影响美观。
2.1 Header
Header部分只有一行,包括三个字段:type(必需)、scope(可选)和subject(必需)。
(1)type
type用于说明 commit 的类别,只允许使用下面7个标识。
feat:新功能(feature)
fix:修补bug
docs:文档(documentation)
style: 格式(不影响代码运行的变动)
refactor:重构(即不是新增功能,也不是修改bug的代码变动)
test:增加测试
chore:构建过程或辅助工具的变动
如果type为feat和fix,则该 commit 将肯定出现在 Change log 之中。其他情况(docs、chore、style、refactor、test)由你决定,要不要放入 Change log,建议是不要。
(2)scope
scope用于说明 commit 影响的范围,比如数据层、控制层、视图层等等,视项目不同而不同。
(3)subject
subject是 commit 目的的简短描述,不超过50个字符。
以动词开头,使用第一人称现在时,比如change,而不是changed或changes
第一个字母小写
结尾不加句号(.)