git 常用命令集

2020-03-04  本文已影响0人  cdz620

初始化

工程初始化

已追踪文件提交修改

  1. git add -u update更新已经追踪的文件,到本地仓库,相当于git add trackedFile
  2. git commit -m "haha" 提交
  3. git push 将修改推送到服务器

新增文件提交修改


git reset 重置一般针对暂存区操作

git reset [--soft|--hard|--mixed] <commit_id>

  1. 替换master(refs/master 文件所指向的commit_id)
  2. 替换暂存区的内容
  3. 替换工作区的内容 (这一步比较危险,会覆盖工作区)

删除暂存区的修改

删除文件

移动文件

例子

git checkout 检出,一般针对工作区操作

主要的三种用法

分离头指针状态

  1. 切换到要将该修改合并到哪个分支上: git checkout master
  2. 根据commit_id合并: git merge aacc87 commit_id 通过git log查看,断头模式的记录一般保存会有个超时时间,应尽早合并

git checkout 命令列表


git cherry-pick <commit_id> 改变版本历史,

git cherry-pick 应用一些已经存在的改变,如: A --》 B --》C --》D --》E --》F, 现在不要D了, 步骤如下:

  1. git checkout c 会导致处于detached HEAD模式
  2. 嫁接E: git cherry-pick master^
  3. 嫁接F: git cherry-pick master
  4. 断头模式处于为命名的分支,切换回master分支: git checkout master
  5. 用匿名分支的覆盖当前master分支,相当于为master分支迁移到了刚刚的匿名分支: git reset HEAD

git rebase 变基过程

命令格式

  1. git checkout <till> 处于断头模式
  2. <since>...<till> 的提交保存到临时文件
  3. git reset --hard <newbase>
  4. 将临时文件的<since>...<till>从newbase节点,逐一更改提交
  5. 若冲突则需要人工处理冲突,再决定是否变基
  6. 整个过程都在断头模式的匿名分支中,最后将匿名分支的修改,应用到要实现变基过程的分支上:git checkout master --> git reset --hard <till>

之前案例的执行过程


辅助功能

比较工具diff

修改已经提交的日志

git stash 工作区的应用

如果接到紧急的任务,需要从一个干净的工作区开始工作,或切换到别的分支工作,需要快速保存当前尚未完成的工作进度

  1. git stash == git stash save ‘message'
  2. git checkout <new_branch>
  3. 新的工作ing, 完成后
  4. git checkout <original_branch>
  5. git stash pop

命令


git push


gitignore独享式


文件归档

如果用系统默认的归档工具,可能会将.git文件夹也打包进去


查看相关信息命令

6652a0dce6a5067732c00ef0a220810a7230655e refs/heads/master
6652a0dce6a5067732c00ef0a220810a7230655e refs/remotes/origin/HEAD
6652a0dce6a5067732c00ef0a220810a7230655e refs/remotes/origin/master
c9b03a208288aebdbfe8d84aeb984952a16da3f2 refs/tags/A
1a87782f8853c6e11aacba463af04b4fa8565713 refs/tags/B

git log命令

git clean 清除工作区中未追踪的文件,会删除没被追踪的文件

磁盘空间清理

  1. git reflog expire --expire=now --all now是一个日期,强制让now之前的记录全部过期,相当于清空reflog
  2. git prune 清理

复制本地git版本库

将远程仓库的特定分支拉到本地

上一篇 下一篇

猜你喜欢

热点阅读