写在前面:
建议大家可以先去看详细的入门教程,然后通过该笔记来复习整理。
- 初始化git仓库:git init
- 添加文件到git仓库:
① 添加修改到暂存区: git add <文件名>
② 提交暂存区的修改到分支: git commit -m "注释语句"
- 查看工作区状态: git status
- 对比文件的修改信息: git diff <文件名>
- 回退到历史版本: git reset --hard <提交ID>
- 查看提交历史: git log
- 查看历史命令: git reflog
- 暂存区的概念:
- 丢弃工作区的修改(实际上是用版本库里的版本替换工作区版本):git checkout -- 文件名
- 丢弃暂存区的修改:git reset head 文件名
- 删除文件: rm 文件名
- 从版本库中删除文件:
① git rm 文件名
② git commit -m "注释语句"
- 创建ssh公钥:ssh-keygen -t rsa -C "自己的邮箱地址"
- 关联远程库:git remote add origin 仓库地址
- 推送分支内容到远程库:git push -u origin 分支名称
(由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。)
此后,每次本地提交后,可以使用命令git push origin master推送最新修改到远程库
- 克隆远程库到本地库:git clone 远程库地址 本地库地址
- 查看分支: git branch
- 创建分支: git branch 分支名称
- 切换分支: git checkout 分支名称
- 创建并切换分支: git checkout -b 分支名称
- 合并某分支到当前分支:
① git merge 分支名称
Fast forward模式合并,看不出曾经做过合并
② git merge --no-ff -m "合并信息注释" 分支名称
禁用Fast forward模式的合并方法,可以看出曾经做过合并
- 删除已经合并过的分支: git branch -d 分支名称
- 储藏现场: git stash
- 查看储藏的现场: git stash list
- 恢复储藏的现象: git stash apply
- 删除储藏的现场: git stash drop
- 恢复并删除储藏的现场: git stash pop
- 删除还未合并的分支:git branch -D 分支名称
- 命令 git tag <tagname> 用于新建一个标签,默认为HEAD,也可以指定一个commit id;
- 命令 git tag -a <tagname> -m "blablabla..." 可以指定标签信息;
- 命令 git tag 可以查看所有标签。
- 命令 git push origin <tagname> 可以推送一个本地标签;
- 命令 git push origin --tags 可以推送全部未推送过的本地标签;
- 命令 git tag -d <tagname> 可以删除一个本地标签;
- 命令 git push origin :refs/tags/<tagname> 可以删除一个远程标签。
多人协作的工作模式通常是这样:
1. 首先,可以试图用git push origin <branch-name>推送自己的修改;
2. 如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
3. 果合并有冲突,则解决冲突,并在本地提交;
4. 没有冲突或者解决掉冲突后,再用git push origin <branch-name>推送就能成功!