【Git】git常用命令&&全过程演示

全过程(顺序执行一遍印象更深哦)

【Git】git常用命令&&全过程演示_第1张图片

  • 初始化项目或拷贝项目

    • git init 当前目录初始化
    • git init 指定文件目录初始化
    • git clone 拷贝一个仓库项目
    • git clone 拷贝一个仓库项目到本地指定目录
  • 配置仓库

    • git config -e 针对当前仓库,-e等同于–edit,使用vim编辑
    • git config -e --global 针对系统上所有仓库
    • 提交代码前一定要配置用户名和邮箱
  • 工作区 ↔ \leftrightarrow 暂存区

    • git status 查看更改信息
    • git diff 比较暂存区和工作区文件不同
    • git add . 添加到暂存区
    • git mv 移动或重命名暂存区文件
    • git rm --cached 将暂存区文件删除,不影响本地
    • git checkout .git checkout -- git restore --staged 将暂存区文件替换工作区文件
  • 暂存区 ↔ \leftrightarrow 本地仓库

    • git commit -m 将暂存区提交到本地仓库
    • git reset --soft 回退版本到暂存区,工作区不受影响
    • git log 查看提交信息
      • –oneline 简洁版本
      • –graph 图示表示
  • 工作区 ← \leftarrow 本地仓库

    • git reset --hard 恢复上一个状态,所有提交的文件不存在(慎用)
    • git checkout HEAD .git checkout HEAD 用本地仓库的文件替换工作区和暂存区的文件
    • 上面两个的不同是:reset是恢复状态,git-commit的新提交丢失;checkout是替换文件,git-commit的新提交不会丢失
  • 本地仓库 ↔ \leftrightarrow 远程仓库

    • git clone 克隆到本地仓库
    • git fetch 从远程获取代码库(rebase到其它分支前必须步骤)
      • git merge 执行完fetch后需要从远程仓库提取数据并尝试合并到当前分支
      • git merge [alias]/[branch]
    • git push 上传远程代码并合并
    • git pull 下载远程代码并合并(等价于git fetch + git merge)
  • 工作区 ← \leftarrow 远程仓库

    • git pull 拉取到本地

git branch 分支管理

  • git branch 创建分支
  • git branch -d 删除分支
  • git checkout 切换分支
  • git checkout -b 创建新分支并切换到新分支
  • git merge 合并分支,解决完冲突后,使用git add表示冲突已经解决
  • 切换分支的时候,git会用该分支的最后提交的快照替换工作目录的内容,所以多个分支不需要多个目录

git remote 远程仓库

  • 先在github上创建一个仓库
  • git remote add origin [email protected] 推送到远程仓库
    • 当连接不同远程仓库的时候,比如github和gitee,就使用git remote add github xxxgit remote add gitee xxx来区分远程
  • git push -u [alias] [branch] 推送到alias远程仓库上的branch分支
  • git remote 查看远程仓库
  • git remote -v 查看远程仓库的具体信息

git tag 标签:重要阶段

  • git tag -a v1.0 创建一个v1.0标签, -a 表示带注解
  • git tag -a v1.0 为某个提交追加标签
  • git log --decorate 查看标签

git log/blame 历史提交记录

  • git log 查看历史提交记录
    • –oneline 简洁版本
    • –author=xxx 指定用户
    • –reverse 逆向
    • –before={} --after={} 时间
  • git blame 文件历史修改记录

git stash 保存更改

  • git stash 将当前工作区和暂存区文件进行保存
  • git stash apply 应用保存的文件,这时暂存区的文件已经与工作区的文件合并
    • 默认应用的是stash@{0}
  • git stash pop 将stash@{0}的文件提交到工作区,并且将第0帧删除
  • git stash show -v 查看保存的内容,-v指查看详细更改
    • 默认是stash@{0}

git reset & revert 版本回退

  • 现在在哪,HEAD就指向哪
  • git reset --hard HEAD~1 回退一个版本,重置暂存区和工作区
    • –hard 全部修改
    • –soft 指修改版本库,将撤销点之后的修改都回退到暂存区
  • git revert 撤销某次提交,会产生一次revert记录

git cherry-pick 摘取提交

  • git merge是合并分支,使用另一分支的所有提交;git cherry-pick 是摘取分支,选取自己需要的提交
  • git cherry-pick 将commit_id的提交应用到当前分支
  • git cherry-pick A..B 转移从A到B的多个提交(不包含A)
  • git cherry-pick A^..B 转移从A到B的多个提交(包含A)
  • 代码冲突
    • 解决代码冲突后,使用git add将文件加入暂存区,然后继续执行git cherry-pick --continue
    • git cherry-pick --abort 发生冲突后,放弃合并,回到之前的样子
    • git cherry-pick --quit 发生冲突后,放弃合并,不回到之前的样子

命令补全

  • 将git安装包的补全脚本复制到根目录:cp xxx/contrib/completion/git-completion.bash ~/.git-completion.bash
  • souce生效
  • 测试成功

你可能感兴趣的:(Tools,#,git,git,运维)