特别声明:图片均来自网络,如有侵权,请告知删除.本人原创会特别声明,本文虽为原创,也是参考被人的文章整理而来, 如觉得被侵权,请告知删除.
你知道以下的答案吗?
- 1.为什么使用Git?
- 2.为什么使用Github?
- 3.你知道哪些简单的Git操作?
- 4.大容量文件怎么存?
- 5.冲突如何解决?
- 6.分支如何管理?
- 7.代码如何协同?
- 8.如何查看文件修改历史?
- 9.如何对比分支?
基本知识
-
工作区/暂存区/版本库
-
操作流
- 更多细节
基本操作
- 添加文件索引 – git add
- 提交到版本区 – git commit
- 将版本区文件覆盖到暂存区 – git reset HEAD
- 从暂存区检出文件到工作区 – git checkout –
- 从版本区检出文件到工作区&暂存区 – git checkout HEAD
- 删除暂存区缓存文件 – git rm --cached
- 分支检出 – git checkout [-b]
- 添加标签 – git tag
标签/分支 === commit
Git文件状态
-
文件状态
untracked / unmodified / modified / staged / committed
-
文件内容查看
git show
-
文件对比
-
文件修改取消
git checkout !!!
-
git checkout branch #检出branch分支,更新HEAD以指向branch分支,并用branch指向的树更新暂存区和工作区。
-
git checkout #汇总显示工作区、暂存区与HEAD的差异。
-
git checkout HEAD #从版本库中的HEAD指针中检出,以HEAD指针指向的树更新暂存区以及工作区
-
git checkout – filename #用暂存区中filename文件来覆盖工作区中的filename文件。相当于取消自上次执行git add filename以来(如果执行过)的本地修改。
-
git checkout branch – filename #维持HEAD的指向不变。用branch所指向的提交中filename替换暂存区和工作区中相应的文件。注意会将暂存区和工作区中的filename文件直接覆盖。
-
git checkout – . 或写作 git checkout . #注意git checkout 命令后的参数为一个点(".")。这条命令最危险!会取消所有本地的 #修改(相对于暂存区)。相当于用暂存区的所有文件直接覆盖本地文件,不给用户任何确认的机会!
-
git checkout commit_id – file_name #如果不加commit_id,那么git checkout – file_name 表示恢复文件到本地暂存区中最新的状态。
-
git checkout #从暂存区恢复
-
-
指定文件忽略
- 编辑.gitignore文件
Git提交
- git log #查看所有提交
- git commit -m “” #正常提交
- git commit --amend -m “” #覆盖上次提交,一般用于更新commit的信息
- git reset HEAD~1 #退回到某次提交
- git revert #做当次操作的方向操作,可能会存在冲突
Git常见操作
- git pull -> git add -> git commit
git pull == git fetch + git merge - git rebase
- git revert
- git cherrypick
- git stash
Git常见问题
- 冲突 merge/rebase
- 分支管理
Recommended Visualization Tool
- SourceTree