git 教程-完整使用流程

管理项目常用

在线学习git点这里


基本命令操作---持续更新---

1. git 配置

$ git config --global user.name "你的用户名"
$ git config --global user.email "你的邮箱"
$ git config --global core.editor "vim"
$ git config --list

2. 创建初始化仓库 or 克隆仓库

$ cd /path/to/my/codebase (你的目标仓库文件夹)
$ git init      (初始化仓库)=
$ git clone(你的目标仓库地址)

很多人没注意过如果取消对文件夹的初始化: \color{red}{把文件夹下面的.git删掉就可以啦}

$ rm -rf .git

3. 提交仓库内容

$ git add . 
$ git commit -m "Your commit message"
$ git status (查看仓库提交状态)

4. 推送&拉取仓库内容

  • 拉取仓库最新内容
$ git pull (自动合并) 
$ git fetch origin 
从远程仓库 "origin" 获取最新的版本信息,但并不会自动合并到本地仓库。"origin" 通常是你克隆远程仓库时默认的别名。
$ git fetch -ap 
-a 参数表示获取所有远程仓库的最新版本信息,
-p 参数表示在获取最新版本信息后,删除那些在远程仓库中已经被删除的分支对应的远程跟踪分支。这个命令也不会自动合并到本地仓库。

简单来说,这两个命令都是用来从远程仓库获取最新的版本信息,但是并不会自动更新你的本地仓库。
第一个命令只获取 "origin" 这个远程仓库的信息,而第二个命令获取所有远程仓库的信息并清理不存在的远程跟踪分支。
  • 推送仓库内容
$ git push --set-upstream origin your branch (关联并推送远程分支,关联后下次只要git push就可以)
$ git push

5. 查看版本历史

$ git log (查看当前分支所有提交过的版本信息,不包括已经被删除的 commit 记录和reset的操作)
$ git reflog (查看所有分支所有操作信息)

6. commit 管理

6.1 commit 修改

$ git rebase -i HEAD~2 (数字代表修改以上几条commit)
  • 点击键盘i进入编辑页面,将需要更改的commit 改为e => 点击键盘esc输入:wq 进行保存


    edit commit
  • 追加到上次修改记录 (可以更改commit 的 提交信息)

$ git commit --amend 
$ git rebase --continue
$ git push -f (强制推送)

Note: 修改commit时出现冲突时不要执行amend,直接git rebase --continue
6.2 commit 合并
同5.1操作 只需修改commit commands,如下图所示:

edit commit

保存后会直接出现以下页面让你修改commit meassage 可以直接注释或者删除

edit commit message

git log 查看 现在commit只有一条commit message为test2的了

log

6.3 粘贴commit/分支

$ git cherry-pick 哈希值/分支名 指定的提交(commit)应用于其他分支
$ git cherry-pick first-commit^..last-commit //提交分支内的所有commit
$ git cherry-pick branch-name //提交分支内的最后一个commit

7. branch 管理

$ git branch (查看所有分支)
$ git checkout -b your branch name (切换并创建新分支)
$ git checkout your branch name (切换已有分支)
$ git branch -M your branch name (重命名已存在分支 )
$ git branch -D your branch name (删除分支 )
$ git branch -D `git branch --merged develop | egrep -v 'master|develop'`(清空本地无用分支)

8.暂存管理

$ git stash (存储)
$ git stash list (查看暂存列表)
$ git stash apply stash@{0} (应用某个暂存,不会删除暂存列表)
$ git stash pop  stash@{0} (应用某个暂存,且从暂存列表中移除)
$ git stash drop stash@{0} (删除某个暂存)
$ git stash clear (清空暂存)

9. 关于撤销操作

--mixed 为默认,可以不用带该参数,用于重置暂存区的文件与上一次的提交(commit)保持一致,工作区文件内容保持不变。
--soft 参数用于回退到某个版本
--hard 参数撤销工作区中\color{red}{所有未提交的修改内容},将暂存区与工作区都回到上一次版本,并\color{red}{删除之前的所有信息提交}

$  git reset (撤销git add)
$  git reset --soft HEAD~1
$  git reset --hard HEAD~1 
$  git merge --abort (撤销合并)

10. 关于合并操作

$  git merge your_branch
$  git merge --continue
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 注:本文首发于 https://github.com/ShannonChenCHN/GitTour。 一、Git ...
    ShannonChenCHN阅读 816评论 0 2
  • 特有名词解释 DETACHED HEAD HEAD normally refers to a named bran...
    清水芦苇阅读 614评论 0 0
  • 看了以前自己写的总结,有一些还是对别人有意义的,打算认真归纳下,陆续发布不出来。 就今天给公司新来的前端实习生做了...
    w如弈如意c阅读 254评论 0 1
  • 前言 由于公司使用的 git 来管理项目的版本迭代问题,天天使用,可以说是非常重要的内容。以前都是将一些相关的命令...
    zgfei阅读 330评论 0 2
  • Git使用总结 开发策略 在实际开发的时候一定要在分支上开发,修复问题,开发完成之后再合并到主分支(master)...
    爱撒谎的男孩阅读 412评论 0 1