git是
1.vcs(版本控制系统)或scm
2.分布式vcs--dvcs 优点:不依赖服务器,本地实现版本控制、可以是0...*n个服务器,人人都是服务器
3.开源、免费的
4.轻量、快速以及便捷的 优点: 轻量级的分支更容易、使用分支更好隔离代码
5.linux之父作品
干干净净的目录、工具神马都是浮云!别当vcs事备份工具
git就这么几招
Git技巧
git reset hard 版本号 清除已提交的代码
git reset soft --HEAD^ 返回到你提交的上一个版本
git branch -av 查看提交分支(提交的时候分支很重要)
git log 查看所有的历史提交
git status 查看你修改的文件
git stash 暂存代码
git pull 把修改的代码加入到变更中
git stash pop 将缓存区代码弹出
git add . 将修改的代码加入到提交中
git commit 将所修改的代码提交
git push origin HEAD:refs/for/sphone(vtrunk或者是aphone) 将提交更新到远程版本库中
1.本地常用命令
a.创建代码创库
1) cd /your-working-dir 2) git init
b.添加文件
git add main.java git add. git add *.js
c.查看创库状态
git status
1) 创库当前工作于那个分支
2) 有哪些文件已被修改
3) 有哪些文件为被添加至版本控制
d.提交代码
1) git commit main.java 2) git commit -a 3) git commit *.js
e.忽视某些文件 编辑
.gitignore
1) .DS_Store 2) *.class 3) *.jar 4) build 5) dist
2.远程操作常用命令
a.从远程复制仓库
1) git cone git@host:repot.git 2) git remote add origin git@host:repot.git // origin --远程仓库别名 // [email protected]远程仓库
b.从远程同步仓库
git pull origin master // origin --远程仓库别名 // master-- 远程分支名
c.提交修改至远程
git push origin master // origin -- 远程仓库别名 // master-- 远程分支名
3.版本控制规范
a.双分支结构
1) 本地develop: 日常工作的主要分支
2) 远程develop 用于daily build
3) 新版本发布合并到master分支 (1.永远只提供成品级的代码 2.通过tag来管理代码的版本 3.只有新版本发布时,master才回被用到)
b.代码提交守则
1) 粒度控制(1.每次提交都具有完整的意义 2.无直接关联的文件分批提交 3.尽量别用git conmmit -a)
2) 认真对待提交的备注 --看的人可能不是你
3)编译、远行、测试不通过的代码不能提交至远程
c.善用 git -flow
1).让git -flow接管分支
git flow init
2).以特性为单位的开发
git flow feature start login // 添加N个文件 // 提交N次 git flow feature finish login
d.轻松发布新版本
git flow release start v1.0 // commit N个补丁 // 修改N个Bug git flow releasefinish v1.0