git实践

1、git概念

  1. 工作区(Working Directory):就是代码文件。
  2. 版本库(Repository):工作区下的隐藏目录.git。有3部分:暂存区,本地分支,HEAD指针
    1. 暂存区(stage): git add,把文件修改添加到暂存区;不会产生log
    2. 本地分支(branch): git commit 把暂存区的所有内容提交到当前分支
    3. HEAD指针: 指向master
  3. 隐藏区(stash)
    1. git stash //保存没有提交的东西到本地, 如果文件有冲突时,checkout要求先解决冲突
    2. git stash save “注释” //等同于git stash, 可以加注释
    3. git stash list //列出
    4. git stash pop //恢复之前的隐藏
    5. git stash clear //清空缓存区,慎用。及时commit, 否则会丢失代码
    6. 多分支情况

2、常用命令

git init //把这个目录变成Git可以管理的仓库

git status //查看状态

git diff //查看修改详情

git add readme.txt //提交到暂存区stage

git commit -m “first commit” //提交到master分支

git log //查看commit历史

git reset --hard HEAD //当前版本

git reset --hard HEAD^ //HEAD^ 回退到上一版本

git reset --hard HEAD~100 //HEAD^ 回退到上100个版本

/d/work/gitRepo/trGitInAction //工作区(Working Directory)
.git //隐藏目录,而是Git的版本库(包含暂存区stage+本地仓库master分支)。
.git/refs/heads/master //master分支,git commit
.git/refs/heads/dev //dev分支,git commit
.git/refs/tags

git checkout – readme.txt //让这个文件回到最近一次git commit或git add时的状态(使用版本库覆盖工作区)
//git checkout – file命令中的–很重要,没有–,就变成了“切换到另一个分支”的命令,

git reset HEAD readme.txt //把暂存区的修改回退到工作区。之后可以1,add添加到工作区;2,checkout放弃工作区的修改。

rm test.txt //删除工作区
git rm test.txt git commit test.txt //从版本库中删除该文件,

远程仓库-----------------
在github上创建一个新的仓库
$ git remote add origin https://github.com/tmriver/trGitInAction.git //添加远程库
$ git push -u origin master
git clone //从远程库克隆

分支管理-----------------为了并行开发,一个分支一个时间线。
创建分支只是创建一个指针

git checkout -b dev //创建并切换到dev分支。相当于git branch dev; git checkout dev
git branch //查看所有分支
git checkout master //切换分支,未add的代码不变。

git merge dev //合并指定分支dev到当前分支。
Fast-forward//表示这次合并是“快进模式”,也就是直接把master指向dev的当前提交,不是每次都能快进模式
git cherry-pick 39d9493d //合并指定的commit

$ git branch -d dev //删除dev。
Git鼓励你使用分支完成某个任务,合并后再删掉分支,这和直接在master分支上工作效果是一样的,但过程更安全。

下载远程分支
git fetch -p otter //重新更新远程连接
git branch -a
git checkout dev4213

解决冲突
git checkout -b feature1 //创建新分支
add & commit readme.txt //commit, log:f1
git checkout master //切回master
add & commit readme.txt //commit, log:m1
git merge feature1 //合并代码,如果有冲突。Git用<<<<<<<,=======,>>>>>>>标记出不同分支的内容
编辑readme.txt //可选的。即使冲突了也可以不编辑(不区分冲突与否)
重新add & commit readme.txt //commit, log:m2
git log //log依次为:m2,m1,f1… 合并成功
git log --graph //合并路线图

<<<<<<< HEAD
m33

f333

f3

保护工作区代码----------既不能add,又要切换分支
git stash //
git stash list

多人协作
git remote -v //
origin https://github.com/tmriver/trGitInAction.git (fetch) //pull权限
origin https://github.com/tmriver/trGitInAction.git (push) //push权限

标签
tag是版本库的快照,便于发布和查找,指向某个commit的指针(分支是线可以前后移动,标签是点不能移动)
git tag v1.0.0 //添加tag,默认是当前commit,也可以指定commitId
git tag //查看tag-list,按照字母排序
git show //查看tag详细
git tag -d v1.0.0 //删除
git push origin v1.0.0 //推送tag到远程

fork
主分支-远程仓库
本地分支-本地仓库。
git merge
http://www.cnblogs.com/chucklu/p/4056373.html

关联多个git(私有git+github)
代码来源(方便以后跟随官网升级,体会到git比svn开放强大,花费了周末和周一,学习让人快乐):
git clone https://github.com/alibaba/otter.git
cd otter/
git tag
git checkout -b dev4213 otter-4.2.13
git remote add dev http://xxx/yyy/otter.git
git push -u dev dev4213

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值