设为首页 收藏本站
查看: 3706|回复: 0

[经验分享] Git简明教程

[复制链接]

尚未签到

发表于 2018-9-18 06:18:31 | 显示全部楼层 |阅读模式
  【git教程】
  http://www.liaoxuefeng.com/ (廖雪峰博客)
  http://rogerdudler.github.io/git-guide/index.zh.html (Git简明教程)
  【常用命令】
  PS:在MacOS系统环境下的git命令。
  工作流
  你的本地仓库由 git 维护的三棵“树”组成。
  > 工作区,它持有实际文件夹。
  > 暂存区(Stage),它像个缓存区域,临时保存你的改动。
  > HEAD,它指向你最后一次提交的结果。
DSC0000.jpg

  配置本机git的用户名和邮箱 | config
  在刚刚在本机安装完git后,需要配置的信息。
  git config --global user.name "shahdza"
  git config --global user.email 250411887@qq.com
  初始化git仓库 | init
  # 创建文件夹,并进入 Demo 目录
  mkdir Demo
  cd Demo
  # 初始化git仓库(将 Demo 文件夹变成git仓库)
  git init
  添加并提交 | add、commit
  都是在本地的git仓库进行操作,不会改动远程仓库的版本。
  # 添加文件到仓库(放在暂存区)
  git add readme.txt
  git add *
  # 提交添加到暂存区的文件到仓库
  git commit -m "提交信息"
  克隆仓库 | clone
# 克隆远程仓库到本地仓库  git clone https://github.com/shahdza/Demo.git
  # 克隆本地仓库到本地另一个路径
  git clone /localpath
  远程推送 | remote、push
# 将本地仓库与一个远程库关联  git remote add origin https://github.com/shahdza/Demo.git
  # 第一次推送master分支的所有内容
  git push -u origin master
  # 推送最新修改内容到master分支(也可以推送其它分支)
  git push origin master
  查看提交信息 | status、diff、log、reflog
# 查看仓库当前状态  git status
  # 查看文件被修改过的内容(在还未commit时,工作区和本地git仓库的差异)
  git diff readme.txt
  # 查看从最近到最远的提交历史
  ## 注意:比如有100个版本,通过reset回退到了第50个版本,那么log只会显示1~50的提交日志
  ## 会显示版本号、提交日期、提交信息
  git log
  git log --pretty=oneline
  # 查看操作命令的历史(记录了每一次的操作命令)
  git reflog
  版本回退 | reset --hard
# 上一个版本、上上个版本、往上100个版本  git reset --hard HEAD^
  git reset --hard HEAD^^
  git reset --hard HEAD~100
  # 回退到指定版本(通过版本号)
  git reset --hard 3628164
  丢弃工作区的修改 | checkout --
  # 一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
  # 一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
  # 总之,就是让这个文件回到最近一次[git commit]或[git add]时的状态。
  git checkout -- readme.txt
  撤销暂存区的修改(unstage),重新放回工作区 | reset HEAD
# 执行后,暂存区是干净的,工作区有修改  git reset HEAD readme.txt
  删除仓库中的某个文件(工作区文件也会删除) | rm
  # 删除文件会放入暂存区,可以使用[git reset HEAD file]和[git checkout -- file]撤销删除
  git rm readme.txt
  分支管理 | branch
  # 创建分支
  git branch
  # 切换分支
  git checkout
  # 创建+切换分支
  git checkout -b
  # 合并某分支到当前分支
  git merge
  # 删除分支
  git branch -d
  # 强行删除
  git branch -D
  # 查看分支
  git branch
  # 查看分支合并图
  git log --graph --pretty=oneline
  标签管理 | tag
  # 给分支打上标签
  ## 当前版本打上标签
  git tag v1.0
  ## 某个版本打上标签
  git tag v0.9 6224937
  # 推送标签到远程仓库
  ## 推送某个标签
  git push origin
  ## 推送所有标签
  git push origin --tag
  # 删除标签
  git tag -d v0.1
  # 删除远程标签
  ## 需要先本地删除,然后再远程删除
  git tag -d v0.9
  git push origin :refs/tags/v0.9
  # 查看所有标签
  git tag
  # 查看某个标签信息
  git show
  忽略特殊文件 | .gitignore
  1、在 Git工作区的根目录创建一个特殊的.gitignore 文件。
  2、在 .gitignore 文件中,添加需要忽略的文件。
  3、特殊文件大全:https://github.com/github/gitignore
  例如:编写Unity3D项目的 .gitignore 文件
===============  
Unity generated
  
===============
  
Temp/
  
Library/
  

  
=====================================
  
Visual Studio / MonoDevelop generated
  
=====================================
  
ExportedObj/
  
obj/
  
*.svd
  
*.userprefs
  
/*.csproj
  
*.pidb
  
*.suo
  
/*.sln
  
*.user
  
*.unityproj
  
*.booproj
  

  
============
  
OS generated
  
============
  
.DS_Store
  
.DS_Store?
  
._*
  
.Spotlight-V100
  
.Trashes
  
ehthumbs.db
  
Thumbs.db
  多人协作
  master分支:用于管理正式版本。
  dev分支:用于管理正在开发版本。
  bob分支:bob自己创建的分支,bob在这个分支下工作,然后合并到dev分支上。
  michael分支:michael自己创建的分支,在这个分支下工作,然后合并到dev分支上。
DSC0001.jpg

  # 抓取分支
  ## 从远程库clone时,默认情况下,只能看到本地的master分支。
  git clone https://github.com/shahdza/Demo.git
  # 在本地创建和远程分支对应的dev分支
  git checkout -b dev origin/dev
  # 建立本地dev分支和远程dev分支的关联
  git branch --set-upstream dev origin/dev
  # 更新分支
  ## 当小伙伴已经向origin/dev分支推送了他的提交。
  ## 而碰巧你也对同样的文件作了修改,并试图推送。
  ## 推送失败,因为小伙伴的最新提交和你试图推送的提交有冲突
  ## 需要把最新的提交从origin/dev抓下来
  ## 然后,在本地合并,解决冲突,再推送
  git pull



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-588715-1-1.html 上篇帖子: git 学习合集 下篇帖子: git github gitlab之间是什么关系
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表