Git版本管理入门
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1,以史为镜,可以…… >> gitk (哇!终于有图形了耶!) 2,糟了,我改错了。 >> git reset …… (没关系!不允许犯错怎么能进步捏!)
* 我当前改错了,不过还没有git add。 -- 重新改就是了,要git干什么? -- 什么?你不要的你工作了? -- 你确定哦!确定了是吧,那就这样吧: >> git reset -- hard 注意!!这个是对当前版本的全回溯,不能 指定某个文件的哦!慎重,慎重!
1,张三继续修改,又需要李四的帮忙。 2,李四下载张三的最新代码。 3,在这一周内,张三自己也在工作。 4,张三没有时间合并代码,需要李四合并。 5,李四再次下载张三最新代码,合并版本。 合并期间,张三停止修改代码。 6,李四把合并后的代码提交给张三。张三直 接切换到新的分支中。
+ 张三修改了file1.txe和file2.txt
+ 李四提交版本给张三
+ (李四操作)
>> cd [work path] (李四的工作目录) >> git push origin lisimodify (合并的工作交给张三啦,啦啦啦!)
+ 张三合并李四的工作 + (张三操作)
>> cd [work path] (张三的工作目录) >> git branch (看看有没有lisimodify的分支) >> git merge lisimodify (修改了同一行,所以有 问题) >> vi file2.txt [处理冲突] >> git add file2.txt >> git commit -m “add lisi work”
+ 情况复杂,不一一列举。
>> git help reset
合作
+ git tag v1.0
+ git tag -a inittag -m “just init tag” + git tag
1,张三在做一个项目。用git控制项目。 2,李四花一周时间帮张三完成一个功能。 3,在这一周内,张三自己也在工作。 4,一周后,李四把工作成果给张三。 5,张三把李四的工作合并到自己的项目中。
+ 啥叫分支?
+ 干嘛用的? + 怎么用?
+ 怎么这么麻烦?
+ 哦,说的是呢
+ 分支:branch
+ 使用分支的场合:
1,调研工作 2,基于一套版本的多个产品 3,并行开发的两套代码,最终需要合并在一 起 4,你想自己写点实验用的代码 5,其他你想用的时候
1,查看当前分支 >> git branch 2,切换到某个分支 >> git checkout [branch name] 3,新建分支(在当前代码的基础上) >> git branch [branch name] 4,删除分支 >> git branch -d [branch name] (不能删?用这个!) >> git branch -D [branch name]
+ 张三初始化项目的git
+ (张三操作)
>> cd [work path] >> git init >> git add file1.txt file2.txt >> git commit -m “init version” >> git config “zhangsan” >> git config user.email “zhangsan@”
+ 李四修改了file1.txe和file2.txt
+ (李四操作)
>> cd [work path] (李四的工作目录) >> [修改file1.txe和file2.txt] >> git add file1.txt file2.txt >> git commit -m “changed by lisi”
+ 张三修改了file1.txe和file2.txt
+ (张三操作)
>> cd [work path] (张三的工作目录) >> [修改file1.txe和file2.txt] >> git add file1.txt file2.txt >> git commit -m “zhangsan changed”
* 我改的不对,已经git add了。 -- 接着改就是了,要恢复干什么? -- 什么?只是想恢复到git add之前? -- 这个好办,这么来: >> git reset -q [files] (其实就是 git add 的反向操作)
* 我改的不对,已经git commit了。 -- 接着改就是了,要恢复干什么? -- 什么?只是想恢复到git commit之前? -- 这个好办,这么来: >> git reset --soft HEAD^ (其实就是 git commit 的反向操作,是全版本 的回溯)
+ 把一个目录用GIT进行管理要几步? 1,cd [该目录] 2,敲: git init 3,回车
1,简单控制 2,分支 3,回溯 4, tag
1,先看看 >> git status 2,新加入文件 >> git add [files] 3,删除文件 >> git rm [files] 4,提交 >> git commit –m [message]
+ 张三用git控制自己的项目
+ (张三操作)
>> cd [work path] >> [修改了file1.txt] >> git add file1.txt >> git commit -m “change 1”
+ 李四拿到张三的代码
+ (李四操作)
>> cd [work path] (李四的工作目录) >> git clone git://zhangsan/zhangsanwork . >> git config “lisi” >> git config user.email “lisi@” >> git status(看看而已) >> git branch lisimodify (新建自己的分支)
>> cd [work path] (李四的工作目录) >> git pull [zhangsan url] >> git branch (看看在哪个分支上)
+ 李四修改代码
+ (李四操作)
>> cd [work path] (李四的工作目录) >> [修改代码] >> git add file1.txt >> git commit -m “modify again by lisi”
的最新代码 + (李四操作) >> cd [work path] (李四的工作目录) >> git branch newversion >> git checkout newversion >> git pull [zhagnsan url] (好像是自动合并了吧)
+ 李四提交版本给张三
+ (李四操作)
谢谢!
一辉课程
yihui823@
GIT 的使用
+ 为什么要做版本控制
+ 为什么要用GIT + 为什么要问为什么
+ 防火 VS 救火
+ 手工 VS 工具 + 手动 VS 自动
+ 口说 VS 证据
+ 重写 VS 恢复
+ Source safe CVS SVN GIT
1,渊源 – 与Linux血脉相连 2,大腕 – GOOGLE说:GIT,天天见 3,方便 – 初始化,一句话 4,扩展 – 分布式 5,管理 – 可以用分支来强制Review
+ 张三继续工作,修改了file1.txe
+ (张三操作)
>> cd [work path] (张三的工作目录) >> [修改file1.txe] >> git add file1.txt >> git commit -m “zhangsan changed again”
+ 李四准备合并版本。新建分支并下载张三
+ (张三操作)
>> cd [work path] (张三的工作目录) >> [修改file1.txe和file2.txt] >> git add file1.txt file2.txt >> git commit -m “zhangsan changed”
+ 李四下载张三当前版本
+ (李四作)
+ 要勇于接受新事物
+ 突破旧的舒适度 + 社会因懒惰而进步
单机版
安装 初始化
+ Ubuntu
>> sudo apt-get install git + Windows /download/win
+ 把大象放进冰箱里有几步? 1,把冰箱门打开 2,把大象放进去 3,把冰箱门关上
>> cd [work path] (李四的工作目录) >> git push origin newversion (搞定啦,啦啦啦!)
+ 张三切换到最新版本
+ (张三操作)
>> cd [work path] (张三的工作目录) >> git checkout newversion (看看file1.txt,是不是最新的~)