zoukankan      html  css  js  c++  java
  • git常用操作

    git常用操作

    • git中的三类文件

      1. 被追踪的(tracked):已经加入文档库
      2. 不被追踪的(untracked):没有加入文档库
      3. 忽略的(ignored):忽略那些不需要管理的文件夹或文件
    • 一个挺全的参考博客

    • 猴子git

    1.创建仓库

    • 创建仓库: git init <reponame>
    • 现有 Git 仓库中拷贝项目: git clone <repo> <directory> repo:Git 仓库。 directory:本地目录。
    • 从远程代码库拉取指定分支的代码: git clone -b v2.8.1 https://xxx.git (-b 分支名称)

    2.分支管理

    在大型合作团队中,我们可以每天新建一个分支,这个分支就用来给大家提交合并代码, 等到晚上大家都合并完了,再把这个分支和maste分支合并

    • 创建分支命令: git branch (branchname)
    • 切换分支命令: git checkout (branchname)
    • 创建并切换分支: git checkout -b (branchname)
    • 列出分支列表: git branch
    • 删除分支: git branch -d (branchname)
    • 分支合并: git merge --no-ff (needMergeBranchname) -m "合并注释"
    • 查看远程所有分支: git branch -r
    •   查看所有本地和远程分支: `git branch -a`
      

    3.git基本操作

    • 将本地文件添加到缓存:
      • git add filname1 filename (单个 多个都可以,多个用空格隔开)
      • git add . (把新增的 修改的 文件都加到缓存中)
      • git add -A (把新增的 修改的 删除的都加到缓存中)
    • 本地从缓存中加到本地仓库中去: git commit -m "版本描述"
    • 本地一键提交到仓库中并注释: git commit -am "版本描述" 是 git add 和 git commit 的合体
    • 查看项目的当前状态: git status 查看是否有文件未提交
    • 查看执行 git status 的结果的详细信息: git diff
      • 尚未缓存的改动:git diff
      • 查看已缓存的改动: git diff --cached
      • 查看已缓存的与未缓存的所有改动:git diff HEAD
      • 显示摘要而非整个 diff:git diff --stat
      • 先列出两个版本间发生更改的文件列表: git diff commit1 commit2 --stat --name-only
      • 查看指定文件在两个版本间发生的变更: git diff commit1 commit2 -- somefile.js
      • 如果感觉这种显示不够直观,可以使用 vimdiff 查看: git difftool commit1 commit2 -- somefile.js
    • 查看提交历史: git log
      • 这个参数是一个显示美化参数,其会让提交记录在一行展示,方便我们查看。git log --oneline (--pretty=oneline --abbrev-commit 合用的简写)
      • 显示基本信息之外,还附带了每次提交的变化 git log -p -2 它会显示每次提交所引入的差异(按 补丁 的格式输出)。 你也可以限制显示的日志条目数量,例如使用 -2 选项来只显示最近的两次提交
    • 给提交点打标签
    • 从远程拉取:
      1. git fetch fetch是将远程主机的最新内容拉到本地,不进行合并
      2. git pull pull 则是将远程主机的master分支最新内容拉下来后与当前本地分支直接合并 fetch+merge
    • 推送到远程仓库: git push push 推送本地修改分支至远程git仓库
    • 远程仓库地址:
      1. git remote 查看远程仓库地址
      2. git remote -v 详细查看
      3. git remote add origin https://xxxxxxxxxxxx.git 添加远程仓库地址
      4. git remote remove origin 删除本地指定的远程地址

    4.git放弃本地修改操作(慎用)

    • 参考文档
    • 未使用 git add 缓存代码时: git checkout -- filepathname (比如: git checkout -- readme.md ,不要忘记中间的 “--” ,不写就成了检出分支了!!)。放弃所有的文件修改可以使用 git checkout . 命令。
    • 已经使用了 git add 缓存了代码: git reset HEAD filepathname (比如: git reset HEAD readme.md)来放弃指定文件的缓存,放弃所以的缓存可以使用 git reset HEAD . 命令。此命令用来清除 git 对于文件修改的缓存。相当于撤销 git add 命令所在的工作。在使用本命令后,本地的修改并不会消失,而是回到了如(一)所示的状态。继续用(一)中的操作,就可以放弃本地的修改。
    • 已经用 git commit 提交了代码: git reset --hard HEAD^ 来回退到上一次commit的状态。此命令可以用来回退到任意版本: git reset --hard commitid 你可以使用 git log 命令来查看git的提交历史。git log 的输出如下,之一这里可以看到第一行就是 commitid:

    5.git忽略文件

    • 本地新增文件或文件夹,未提交到远程版本库中: 将你需要忽略的文件加入到.gitignore文件中,这些文件可能是数据库密码的配置文件 或者本地环境相关的配置等等;

      1. .gitignore可以有多个,影响范围当前文件及其子文件

      2. .gitignore文件忽略demo

         	# Maven #
         	target/
         	 
         	# IDEA #
         	.idea/
         	*.iml
         	 
         	# Eclipse #
         	.settings/
         	.classpath
         	.project
        
      3. git rm -r --cached . 删除缓存区的所有文件

    • 对于已经被git追踪的文件: 好文档推荐

      • git rm --cached filename (推荐)
        • git rm --cached 删除的是追踪状态,而不是物理文件;如果你真的是彻底不想要了,你也可以直接 rm+忽略+提交。
        • 如果误操作了,可以 gir reset HEAD filename
      • git update-index --assume-unchanged filename
        • git update-index --assume-unchanged 的真正用法是这样的:你正在修改一个巨大的文件,你先对其 git update-index --assume-unchanged,这样 Git 暂时不会理睬你对文件做的修改;
        • 当你的工作告一段落决定可以提交的时候,重置改标识:git update-index --no-assume-unchanged,于是 Git 只需要做一次更新,这是完全可以接受的了;
          提交+推送。
      • git update-index --skip-worktree filename

    6.git配置

    • 查看git的配置 git config -l
    • git配置本地仓库的userName(必须) git config user.name 'djw'
    • git配置本地仓库的邮箱(必须) git config user.email 'djw@baidu.com'

    7.git标签

    像其他版本控制系统(VCS)一样,Git 可以给仓库历史中的某一个提交打上标签,以示重要。 比较有代表性的是人们会使用这个功能来标记发布结点( v1.0 、 v2.0 等等)。

  • 相关阅读:
    解决 EDAS:Upload failed: The right margin is 0.535 in on page 1 问题
    解决 ImportError: No module named _internal
    静态页面如何实现 include 引入公用代码
    一个用 js 实现点阵图的编辑器演示
    从 art-template 模版维护到动态加载的思考
    Atom 备份神器 —— Sync Settings
    clicaptcha中文点击验证码开发经验总结
    通过 imagick 让 PHP 生成 PSD 文件缩略图
    让视频压制更简单
    Medoo个人修改版
  • 原文地址:https://www.cnblogs.com/djwhome/p/12764375.html
Copyright © 2011-2022 走看看