Git版本控制工具使用方法整理
转载:https://blog.****.net/CLL1216/article/details/53414535
因为现在git是项目管理的主流,在学习使用过程中整理总结出了一些东西,特在此记录一下。所有用法总结如图:
- 基础篇
- 远程篇
- 分支篇
- 提交篇
- 冲突篇
- 回滚篇
- 删除篇
- 查看篇
基础篇
命令 | 解释 |
---|---|
git init | 初始化一个Git仓库 |
git -rf .git | 删除版本库 |
远程篇
命令 | 解释 |
---|---|
git remote -v | 查看远程路径 |
git remote set -url origin url | 设置远程地址 |
git remote add name url | 关联远程库 |
git fetch name | 拉取但不合并 |
git pull | 拉取并合并 |
git push | 推送 |
git clone url | 克隆仓库 |
分支篇
命令 | 解释 |
---|---|
git branch | 查看分支 |
git checkout -b new_branch | 创建并切换到新的分支 |
git checkout master | 切换到master分支 |
git merge other_branch | 合并别的分支到当前分支 |
git rebase other_branch | 把当前分支的提交临时保存为补丁并临时删除这些提交,合并更新另一分支,最后把补丁应用到当前分支 |
git branch -d branch | 删除分支 |
git log –graph –pretty=oneline –abbrev-commit | 查看分支合并情况 |
1. master分支是主分支,因此要时刻与远程同步
2. dev分支是开发分支,团队所有成员都需要在上面工作,所以也需要与远程同步
3. bug分支只用于在本地修复bug,就没必要推到远程了,除非老板要看看你每周到底修复了几个bug
4. feature分支是否推到远程,取决于你是否和你的小伙伴合作在上面开发
提交篇
命令 | 解释 |
---|---|
git add | 添加文件,可反复多次使用,修改放在暂存区 |
git commit -m “comments” | 将暂存区的所有修改提交到仓库 |
git push origin | 推送 |
每次修改,如果不add到暂存区,那就不会加入到commit中
冲突篇
命令 | 解释 |
---|---|
git status $file | 显示冲突 |
cat $file | 查看冲突文件 |
git add $file | 处理后标记为解决 |
git commit -m “comments” | 提交 |
一般在项目开发过程中,在本地分支(feature/branch)写代码,提交到自己的远程分支(origin/feature/branch)从中央库远程分支(upstream/feature/branch)上merge下代码,如果merge时有冲突需要修改
You have not concluded your merge (MERGE_HEAD exists) git拉取失败
回滚篇
命令 | 解释 |
---|---|
git reset –hard commit_id | 回退到commit_id这个版本 |
git reset –hard $HEAD | 全部回退 |
git reset –soft $HEAD | 只回退commit内容 |
git reset –mixed $HEAD | 默认,回退commit和index |
一般情况HEAD指向的版本为当前版本,使用git reset –hard commit_id(上一个版本:HEAD^,上上一个版本:HEAD^^,往上100个,写成HEAD~100)
删除篇
命令 | 解释 |
---|---|
git rm file | 从文件跟踪和文件系统删除,删除版本库的文件,记得git commit提交修改 |
git rm –cached file | 从文件跟踪删除 |
git checkout - file | 误删后恢复文件到最新版本 |
git push origin –delete | 删除远程分支 |
git push origin : | 推送一个空分支,相当于删除远程分支 |
git fetch -p | fetch之后删除掉没有与远程分支对应的本地分支 |
查看篇
命令 | 解释 |
---|---|
git status | 查看当前状况 |
git diff | 查看修改内容,再通过git add和git commit 提交内容 |
git log | 查看提交历史,用于回退之前 |
git reflog | 查看命令历史 |
git log –pretty=oneline | 单行日志 |
在Android studio开发过程中的一些总结:
Project文件夹目录下:
- fork项目;
- 在AndroidProject的目录下打开git shell,输入git clone 项目路径(github项目下载);
项目目录下:
- git checkout -b feature/refactor origin/feature/refactor导入并且切换其他分支
-
git remote -v 显示远程分支(Android);
-
(关联远程库)git remote add upstream(远程分支名) 项目ssh地址(Android);
- git fetch upstream(远程分支名)
Android studio有关git的操作:
修改代码,点击上边VCS(绿色)进行选择
- commit:所有操作基于这个而留下痕迹,commit message需要记录并且记录仔细以便之后进行回退查询。
- push:把commit的内容提交到远程项目(自己项目)中
- Revert:重置回项目原来的节点
- show diff:查看不同,以此来了解项目的改变内容,若是只是因为错误而造成的改动不commit
多人协作的工作模式通常是这样:
- 首先,可以试图用git push origin branch-name推送自己的修改
- 如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并
- 如果合并有冲突,则解决冲突,并在本地提交
- 没有冲突或者解决掉冲突后,再用git push origin branch-name推送就能成功
如果git pull提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建,用命令git branch –set-upstream branch-name origin/branch-name