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

[经验分享] Git 基本命令

[复制链接]

尚未签到

发表于 2018-9-17 08:22:13 | 显示全部楼层 |阅读模式
  Git 是一种分布式版本控制系统
  创建版本库
  mkdir  dirname 新建目录
  cd dirname
  git init   把该目录变成 Git 仓库
  该目录下有个 .git 隐藏目录,不要去改这个目录里的文件
  添加文件
  git add filename.txt
  把文件提交给仓库
  git commit -m "xxx"          -m后面输入的是本次提交的说明
  查看仓库当前状态
  git status
  比较修改了什么内容
  git diff filename.txt
  查看提交的历史
  git log   命令显示从最近到最远的提交日志

  git log --pretty=oneline        每个版本只输出一行(commit>  查看提交的命令历史
  git reflog

  你看到的一大串字符是commit>  在Git中,用HEAD表示当前版本,上一个版本是HEAD^,上上版本是HEAD^,往上前 n 个版本是 HEAD~n
  git reset --hard HEAD^   回退到上一版本

  git reset --hard 版本号  到该commit>  工作区和暂存区的概念
  dirname 就是一个工作区
  工作区里的隐藏目录 .git ,不算工作区,是 Git 的版本库
  Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,
  还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD
  git add命令实际上就是把要提交的所有修改放到暂存区(Stage),然后,执行git commit就可以一次性把暂存区的所有修改提交到分支。
  Git 管理的是修改。你第一次修改 filename.txt  并执行 git add ,把它提交到暂存区,第二次修改 filename.txt 不添加,执行 git commit
  你会发现只有第一次的修改被提交了,第二次没有被提交。       git commit 只负责暂存区中的内容
  每次修改,如果不add到暂存区,那就不会加入到commit中
  撤销修改
  场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- filename
  场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD filename(HEAD表示最新版本),就回到了场景1,
  第二步按场景1操作。
  场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,回退一个版本。
  删除文件
  rm filename
  Git 会记录下来,使用 git status 会告诉你哪些文件被删除了
  如果确实要从版本库中删除,用 git rm 删掉,并且要用 git commit
  如果误删  用 git checkout -- filename   git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。
  要关联一个远程库,使用命令git remote add origin git@server-name:path/repo-name.git;
  关联后,使用命令git push -u origin master第一次推送master分支的所有内容;
  此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改
  克隆一个仓库,git clone 仓库的地址
  查看分支:git branch
  创建分支:git branch
  切换分支:git checkout
  创建+切换分支:git checkout -b
  合并某分支到当前分支:git merge
  删除分支:git branch -d
  用git log --graph命令可以看到分支合并图。
  git log --graph --pretty=oneline --abbrev-commit
  分支策略
  git merge --no-ff -m "merge with no-ff" dev
  合并分支  加 --no--ff 表示以普通模式合并,-m 说明,合并后的历史有分支,能看出来曾经做过合并,
  通常,合并分支时,如果可能,Git 会使用Fast forward模式,而这种模式合并后看不出曾经做过合并。
  git stash
  把当前工作现场储存起来,以后可以恢复现场继续工作,像快照
  git stash list 查看存的工作现场
  恢复工作现场
  git stash apply 恢复,恢复后 stash 内容不会删除,需要用 git stash drop 来删除
  git stash pop ,恢复的同时把 stash 内容也删除
  强制删除一个没有被合并过的分支
  git branch -D
  查看远程库信息,使用git remote -v;
  本地新建的分支如果不推送到远程,对其他人就是不可见的;
  从本地推送分支,使用git push origin branch-name,如果推送失败,先用git pull抓取远程的新提交;
  在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name,本地和远程分支的名称最好一致;
  建立本地分支和远程分支的关联,使用git branch --set-upstream branch-name origin/branch-name;
  从远程抓取分支,使用git pull,如果有冲突,要先处理冲突
  创建标签

  命令git tag 用于新建一个标签,默认为HEAD,也可以指定一个commit>  git tag -a  -m "blablabla..."可以指定标签信息;
  git tag -s  -m "blablabla..."可以用PGP签名标签;
  命令git tag可以查看所有标签。
  管理标签
  命令git push origin 可以推送一个本地标签;
  命令git push origin --tags可以推送全部未推送过的本地标签;
  命令git tag -d 可以删除一个本地标签;
  命令git push origin :refs/tags/可以删除一个远程标签。


运维网声明 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-588047-1-1.html 上篇帖子: Git和Github简单教程 下篇帖子: git 有用却易忘的知识与命令
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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