Git
1. Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或大或小的项目。
2. Git工作流程:
3. Working Directory: 工作目录
Index(Stage): 暂存区,保存临时改动
History: 仓库,head指向最后一次提交的结果
上面的四条命令在工作目录、暂存目录和仓库之间复制文件:
- git add files 把当前文件放入暂存区
- git commit 给暂存区生成快照并提交
- git reset --files 3种模式
- git checkout --files 把文件从暂存区复制到工作目录,用来丢弃本地修改
4. 基本操作:
git init | 使用当前目录作为Git仓库 |
git add files | 将files从工作目录加入暂存区(git add .添加当前项目的所有文件) |
git commit -m "代码提交信息" | 将暂存区代码提交到仓库 |
git clone [url] | 将一个Git仓库clone到本地 |
git status -s | 查看当前项目的状态 A:已添加 AM:添加之后又有改动 -s表示简洁输出结果,没有参数会详细输出内容 |
git diff | 查看尚未缓存的改动 |
git diff --cached | 查看已缓存的改动 |
git diff HEAD | 查看已缓存的与未缓存的所有改动 |
git diff --stat | 显示摘要而非整个diff |
git commit -am "代码提交信息" | 同时进行git add和git commit |
git reset HEAD | 取消已缓存内容 |
git rm <file> | 从Git中移除某个文件 |
git rm -f <file> | 如果删除之前修改过并且已经存放到暂存区,必须要用强制删除选项 |
git rm --cached <file> | 把文件从暂存区中移除,但仍保留在当前工作目录中 |
git mv | 移动或重命名一个文件、目录或软连接 |
git branch (branchname) | 创建分支 |
git checkout (branchname) | 切换分支 |
git branch | 列出分支 |
git checkout -b (branchname) | 创建分支并立即切换到该分支下 |
git branch -d (branchname) | 删除分支 |
git merge (branchname) | 将分支合并到当前分支 |
git log | 查看提交历史 |
git log --oneline | 查看历史记录的简洁版本 |
git log --graph | 查看历史中什么时候出现了分支、合并 |
git log --reverse | 逆向显示所有日志 |
git remote add origin [url] | 添加远程仓库 |
git push -u origin master | 将代码提交到Github |
git remote | 查看当前配置有哪些远程仓库 |
git remote -v | 查看当前配置有哪些远程仓库并显示每个别名的实际链接地址 |
git fetch origin | 从远程仓库下载新分支与数据 |
git merge origin/master | 将从远程仓库取回的数据合并到当前分支 |
git push [alias] [branch] | 以上命令将你的 [branch] 分支推送成为 [alias] 远程仓库上的 [branch] 分支 |
5. git fetch 和 git pull 的区别:
- git fetch 是将远程仓库的最新内容拉到本地,用户在检查了以后决定是否合并到工作本机分支中。
- git pull 将远程仓库的最新内容拉下来后直接合并,即:git pull = git fetch + git merge,这样可能会产生冲突,需要手动解决。