Git操作文档
2015-12-24 09:49
337 查看
mkdir 创建文件夹
cd 进入当前目录 ( 不写目录名 直接回到家目录)
cd .. 回到上一层
ls 查看当前目录内容
ls -a 查看当前目录下隐藏文件
pwd 查看当前目录
open . 打开当前目录
rm 删除文件
上述操作的结果是在 WORK 目录下创建了一个.git隐藏目录,它就是所谓的Git仓库,不过现在它还是空的。另外WORK目录也不再是普通的文档目录了,今后我们将其称为工作树。
commit 只负责把暂存区的文件提交 文件没有被写入到暂存区,commit 不会提交到仓库
注意更换为自己的远程库名
把本地库中内容push到远程库中 (-u 参数 是为了把本地master分支和远程master分支关联,以后可以简化命令)
合并分支并创建一个commit 所以加入-m参数 - -no-ff这种合并分支的模式和默认的Fast forward模式相比,能保存合并的历史记录 能看出曾经做过合并 另一种模式不能看出做过合并
修复bug时,我们会通过创建新的bug分支进行修复,然后合并,最后删除;
当手头工作没有完成时,先把工作现场git stash一下,然后去修复bug,修复后,再git stash pop,回到工作现场
多人协作的工作模式通常是这样:
1. 首先,可以试图用git push origin 推送自己的修改;
2. 如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
3. 如果合并有冲突,则解决冲突,并在本地提交;
4. 没有冲突或者解决掉冲突后,再用git push origin 推送就能成功!
如果git pull提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建,用命令
git branch –set-upstream-to origin/
cd 进入当前目录 ( 不写目录名 直接回到家目录)
cd .. 回到上一层
ls 查看当前目录内容
ls -a 查看当前目录下隐藏文件
pwd 查看当前目录
open . 打开当前目录
rm 删除文件
建立项目仓库
$ cd Git $ git init
上述操作的结果是在 WORK 目录下创建了一个.git隐藏目录,它就是所谓的Git仓库,不过现在它还是空的。另外WORK目录也不再是普通的文档目录了,今后我们将其称为工作树。
$ git add . 添加所有文件 $ git commit -m “添加文件” 告诉git,把文件提交到仓库 并备注为”添加文件”
commit 只负责把暂存区的文件提交 文件没有被写入到暂存区,commit 不会提交到仓库
$ git status 查看仓库当前状态 $ git diff 查看具体改变内容
版本回退
$ git log 查看仓库历史记录(详细版) $ git reflog 查看仓库历史记录(精简版) $ git log --pretty=oneline (版本号加版本备注) $ git log --pretty=oneline --abbrev-commit (前7位版本号加版本备注) $ git reset --hard HEAD^ /*回到上一个版本 HEAD^^回到上上个版本 回到往上三个版本以上 用HEAD~100*/ $ git reset --hard e8f9206 (回到之前以后恢复新的版本)
删除文件
$ git rm text1.rtf 删除text1.rtf文件 $ git checkout -- text1.rtf 从本地库中把text1.rtf找回来
远程仓库
在GitHub上创建一个远程库,并配置公钥,每一个远程库对应一个公钥$git remote add origin git@github.com:UniqueMy/learngit.git 关联远程库
注意更换为自己的远程库名
$ git push -u origin master
把本地库中内容push到远程库中 (-u 参数 是为了把本地master分支和远程master分支关联,以后可以简化命令)
$ git push origin master 把本地master分支的最新修改推送至GitHub
克隆
$ git clone git@github.com:UniqueMy/learngit.git $ git checkout -b dev origin/dev 克隆远程的dev分支到本地 $ git pull 把最新的内容抓取下来 $ git branch --set-upstream dev origin/dev 设置本地dev分支和远程 origin/dev分支的链接
创建分支
$ git checkout -b dev checkout 加上 -b 表示创建并切换 相当于 $ git branch dev $ git checkout dev $ git branch <name> 创建分支 $ git branch 列出所有分支 当前分支会用*标注 $ git merge <name> 合并指定分支到当前分支 $ git branch -d <name> 删除分支
解决冲突
$ git log - -graph 查看分支合并图 $ git merge --no-ff -m "merge with no-ff" <name>
合并分支并创建一个commit 所以加入-m参数 - -no-ff这种合并分支的模式和默认的Fast forward模式相比,能保存合并的历史记录 能看出曾经做过合并 另一种模式不能看出做过合并
修复BUG
$ git stash 把手头未完成工作现场储存起来 $ git stash list 查看储存起来的工作现场 $ git stash pop 恢复工作现场并把stash的内容删除 $ git stash apply 恢复工作现场 不删除stash $ git stash drop 删除stash
修复bug时,我们会通过创建新的bug分支进行修复,然后合并,最后删除;
当手头工作没有完成时,先把工作现场git stash一下,然后去修复bug,修复后,再git stash pop,回到工作现场
$ git branch -D <name> 强制删除一个还没有合并的分支
多人协作
$ git remote 查看远程库信息 (精简版) $ git remote -v 查看远程库信息 (详细版) $ git push origin <name> 把分支内容推送到远程库
多人协作的工作模式通常是这样:
1. 首先,可以试图用git push origin 推送自己的修改;
2. 如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
3. 如果合并有冲突,则解决冲突,并在本地提交;
4. 没有冲突或者解决掉冲突后,再用git push origin 推送就能成功!
如果git pull提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建,用命令
git branch –set-upstream-to origin/
创建标签
$ git tag 查看所有标签 $ git tag <name> 打标签 $ git tag <name> <版本号前6位> 给指定版本打标签 $ git show <name> 查看标签信息 $ git tag -a <标签名> -m <标签说明> <版本号> 打一个有说明的标签 $ git tag -d <name> 删除标签 $ git push origin <name> 远程推送某个标签 $ git push origin --tags 远程推送所有未推送的标签 删除远程标签 1.$ git tag -d <name> 删除本地标签 2.$ git push origin :refs/tags/<name> 删除远程标签 配置别名 $ git config --global alias.st status 这样st 就代表 status $ cat .git/config 每个仓库的配置文件 $ cat .gitconfig 当前用户的配置文件
相关文章推荐
- RPC failed; result=22, HTTP code = 411
- git更新已經刪除的文件
- 提取Git每次提交后Commit的文件
- GIT迁移服务器
- 分布式版本管理git入门指南使用资料汇总及文章推荐
- git终极指南:在实际开发中的应用
- C#生成Word文档代码示例
- jQuery窗口、文档、网页各种高度的精确理解
- 比较全的一个C#操作word文档示例
- C#编程实现Excel文档中搜索文本内容的方法及思路
- Git远程操作详解
- 25个 Git 进阶技巧(翻译)
- 详解版本控制利器Git,SVN的异同以及适用范围
- Ruby实现的删除已经合并的git分支脚本分享
- 在 Shell 提示符中显示 Git 分支名称的方法
- Git使用基础篇(一些常用命令和原理)
- MongoDB修改、删除文档的域属性实例
- git fork同步是什么意思?
- 跟老齐学Python之Python文档
- Git使用小坑 Out of memory错误的解决方法