git 软件版本控制 学习笔记

上传人:xzh****18 文档编号:46715250 上传时间:2018-06-27 格式:PDF 页数:5 大小:386.61KB
返回 下载 相关 举报
git 软件版本控制 学习笔记_第1页
第1页 / 共5页
git 软件版本控制 学习笔记_第2页
第2页 / 共5页
git 软件版本控制 学习笔记_第3页
第3页 / 共5页
git 软件版本控制 学习笔记_第4页
第4页 / 共5页
git 软件版本控制 学习笔记_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《git 软件版本控制 学习笔记》由会员分享,可在线阅读,更多相关《git 软件版本控制 学习笔记(5页珍藏版)》请在金锄头文库上搜索。

1、涂伟忠 总结整理 于 2014.05.20 基本命令基本命令 初始化 git init (先进入文件夹, 再执行 git init, 这样就新建了一个仓库, 仓库可以理解为一个软件包或者开发的一个项目) 增加文件 git add file 添加全部更新(包括删除) git add -A 或 git add -all 提交修改 git commit -m some descriptions 克隆远程仓库 git clone 地址 修改文件后,没有 add 时,当时间久了,忘了改了什么时,对比不同点 git diff filename 状态 git status 日志查看 git log 上次提交

2、日志 git log -1 引用日志 git reflog 用来查看 commit id 回退到上一个版本 git reset -hard HEAD 回退到某个版本 git reset -hard commit-id 可以向前,也可以向后(回退后悔了) 工作区工作区 就是你编辑的那些文件所在区域 暂存区暂存区 就是用 git add 添加之后的文件所放的区域,只有放到此区,在 commit 时才会被提 交到版本库 版本库版本库 用 git commit 提交后的文件的位置 撤销工作区更改撤销工作区更改 丢弃工作区的修改丢弃工作区的修改 git checkout - readme.txt (让这

3、个文件回到最近一次git commit 或git add 时的状态) 暂存区的修改撤销掉暂存区的修改撤销掉 git reset HEAD readme.txt (就是把 git add 的文件撤销的意思) 如果已经提交(commit),用版本回退(git reset -hard HEAD或 git reset -hard commit-id)。 删除文件删除文件 1. 先从工作区删除 rm readme.txt 2.1 确实要从版本库中删除,再从版本库中删除 git rm readme.txt 2.2 删除错了,从版本库中回来 git checkout readme.txt 命令 git rm

4、 用于删除一个文件。如果一个文件已经被提交到版本库,那么你永远不用担心 误删,但是要小心,你只能恢复文件到最新版本,但会丢失最近一次提交后的修改最近一次提交后的修改,也就是 说工作区的文件不提交到版本库是不会有记录的。 本地关联本地关联远程仓库远程仓库 git remote add origin :twz915/learngit.git 第一次 git push -u origin master 推送 master 分支的所有内容, 第二次及以后 git push origin master 仅推送最新修改。(master 为分支名) 备注:备注: git clone 地址 得到的仓库是自动和

5、远程的关联到一起的 创建并切换到分支创建并切换到分支 git checkout -b dev git checkout命令加上-b 参数表示创建并切换,相当于以下两条命令: 新建分支 git branch dev 切换分支 git checkout dev 查看当前是哪个分支 git branch 删除分支 git branch -d dev涂伟忠 总结整理 于 2014.05.20 上图中,每个圈表示一次 commit,默认我们是在 master 分支上工作的,现在我们要把 dev 分支的工作成果合并到 master 分支上: 先切换到 master 分支(git checkout mast

6、er),再 合并(git merge dev) 合并后 删除分支(git branch -d dev) 删除分支后,我们再也看不到分支的信息了,相当于分支 从历史中删除了。涂伟忠 总结整理 于 2014.05.20 解决冲突解决冲突 有多个分支时,如果在多个分支上都做了更改并且都做了提交,就不能快速合并,这时就要 解决冲突: git status 查看冲突文件并手动修改,然后 git add file ,再 git commit -m “confict fix“ 禁用“Fast forward”,防止删除分支后丢失分支信息。 git merge -no-ff -m “merge with no

7、-ff“ dev 合并时创建一次新的 commit 涂伟忠 总结整理 于 2014.05.20 Bug 分支:分支: 当你在主分支上正在做修改的时候,突然发现了一个 Bug,并且这个 Bug 需要马上修复, 你的工作只做到一半, 还不能提交上去, 如果直接创建新分支会使得当前分支的修改也被复 制到新分支(因为还没写完,会出问题的) ,这时候就要 隐藏工作现场隐藏工作现场 用 git stash 把当前工作现场“储藏”起来, 等修复了 bug 再回来接着做 git checkout b bug001 创建并切换到分支 bug001,修改 提交 合并后,再回到原来的开 发分支(git checko

8、ut branch-name) 查看隐藏的工作 git stash list 恢复隐藏内容 git stash apply stash0 删除隐藏内容 git stash drop 恢复并删除 隐藏的内容(推荐使用) git stash pop 总结:总结:修复 bug 时,我们会通过创建新的 bug 分支(git checkout b bug001)进行修复,然 后合并(git merge bug001),最后删除(git branch d bug001); 当手头工作没有完成时,先把工作现隐藏(git stash)一下,然后去修复 bug,修复后,再 git stash pop,回到工作现

9、场接着做。 Feature 分支分支 开发一个新新 feature,最好新建一个分支;当工作着时发现经费不足,不能做下去,上级命 令这个 feature 分支不再有经费支持,没办法,工作一半了也得删除,没有 merge 的分支强 行删除,可以通过 git branch -D feature 强行删除。 多人协作:多人协作: 多人协作的工作模式通常是这样: 1. 首先,可以试图用 git push origin branch-name推送自己的修改; 2. 如果推送失败,则因为远程分支比你的本地更新,需要先用 git pull 试图合并; 3. 如果合并有冲突,则解决冲突(修改添加),并在本地提

10、交(commit); 4. 没有冲突或者解决掉冲突后,再用 git push origin branch-name推送就能成功! 5. 如果 git pull 提示“no tracking information”,则说明本地分支和远程分支的链接关系没 有创建,用命令 git branch -set-upstream branch-name origin/branch-name。 这就是多人协作的工作模式,一旦熟悉了,就非常简单。 总结:总结: 查看远程库信息,使用 git remote -v; 本地新建的分支如果不推送到远程,对其他人就是不可见的; 从本地推送分支,使用 git push o

11、rigin branch-name,如果推送失败,先用 git pull 抓取远 程的新提交; 在本地创建和远程分支对应的分支,使用 git checkout -b branch-name origin/branch-name,本地和远程分支的名称最好一致; 从远程抓取分支,使用 git pull,如果有冲突,要先处理冲突。 涂伟忠 总结整理 于 2014.05.20 标签管理标签管理 当前 commit 打标签 git tag v1.0 其它的提交打标签 git tag v0.9beta commit-id (git log 查看 commit-id) 查看标签 git tag 查看标签信息

12、 git show v0.9beta 创建带有说明的标签,用-a 指定标签名,-m 指定说明文字: git tag -a v0.1 -m “version 0.1 released“ commit-id 还可以通过-s 用私钥签名一个标签: git tag -s v0.2 -m “signed version 0.2 released“ fec145a 删除标签 git tag -d v0.1 因为创建的标签都只存储在本地,不会自动推送到远程。所以,打错的标签可以在本地安全 删除。如果要推送某个标签到远程,使用命令 git push origin tagname 一次性推送全部尚未推送到远程的

13、本地标签:git push origin tags 如果标签已经推送到远程,要删除远程标签就麻烦一点,先从本地删除:git tag -d v0.9 然后,从远程删除。删除命令也是 push:git push origin :refs/tags/v0.9 忽略特殊文件忽略特殊文件 写在文件 .gitignore 中,比如忽略 python 中的 pyc,pyo,pyd 文件,.gitignore 中这样写 # Python:这一行是备注 *.pycod 配置别名配置别名 git config -global alias.st status git st 的意思就是 git status git

14、config -global alias.last log -1 这样,用 git last 就能显示最近一次的提交 git config -global alias.lg “log -color -graph -pretty=format:%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)%Creset -abbrev-commit“ 这样就可以用 git lg 查看 commit 的图。 最后最后总结:总结: Bug 分支,Feature 分支,dev 分支都是一样的分支,没有本质区别,只不过是 git 的分支 的不同的用途。 容易混淆的命令: git checkout b branch-name 创建并切换分支 git checkout - filename 让这个文件回到最近一次 git commit 或 git add 时的状态 git checkout branch-name 切换分支

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号