版本工具-常用 Git 命令
2017-11-29 15:53
375 查看
Git之所以是革命性的,就是因为它能同时给你这两方面的好处。你可以在原型开发过程中经常备份变动,而搞定后只需要交付一个干净的版本历史。
大原則:
记住,在 Git 中任何已提交的东西几乎总是可以恢复的。 甚至那些被删除的分支中的提交或使用–amend选项覆盖的提交也可以恢复(阅读数据恢复了解数据恢复)。然而,任何你未提交的东西丢失后很可能再也找不到了。Git 保存的不是文件的变化或者差异,而是一系列不同时刻的文件快照。
工作逻辑图如下
几个专用名词的译名如下
Workspace:工作区
Index / Stage:暂存区
Repository:本地仓库
Remote:远程仓库
常用命令
1.添加与提交到本地仓库
git add <文件名列表,以空格分割> or git add * git commit -m "提交说明信息" //或者合并成: git commit -am "提交说明信息"
2.将这些改动提交到远端仓库
git push origin master
3.将这些改动拉到本地
原则:先拉后推git pull git pull origin master ---在分支上将主分支的代码迁出到本地
4.分支
git checkout 分支名【分支名可以带文件夹名】 ---切换分支 git checkout -b 分支名 【分支名可以带文件夹名】 ---创建并切换到新分支 git branch -d 分支名 【分支名可以带文件夹名】 ---删除本地分支 git push --delete origin 分支名 【分支名可以带文件夹名】 ---删除远程分支 git branch -r --查看远程分支 git branch --列出本地所有的分支 git branch -av --列出本地及远程所有分支,并显示最新状态 git merge ***
5.撤销
// 对暂存区的取消: git reset --hard 【HEAD/版本号】 // 撤销对文件的修改: git checkout -- CONTRIBUTING.md (文件名)
根据–soft –mixed –hard,会对working tree和index和HEAD进行重置:
git reset –mixed:此为默认方式,不带任何参数的git
reset,即时这种方式,它回退到某个版本,只保留源码,回退commit和index信息
git reset –soft:回退到某个版本,只回退了commit的信息,不会恢复到index
file一级。如果还要提交,直接commit即可
git reset –hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容
然後 git push origin HEAD --force
6.解决文件中冲突的的部分
打开冲突的文件,会看到类似如下的内容:git冲突内容
其中Updated upstream 和=====之间的内容就是pull下来的内容,====和stashedchanges之间的内容就是本地修改的内容。碰到这种情况,git也不知道哪行内容是需要的,所以要自行确定需要的内容。解决完成之后,就可以正常的提交了。
7.合并几次提交的修改
在push到主分支之前,先将几次commit合并git rebase -i HEAD~3
第一个pick之后的其他行改成s,按esc退出vim的编辑模式,输入:wq提交
进入一个界面,保留第一条注释,后续的注释删除,按esc退出vim的编辑模式,输入:wq提交
rebase完成
如果出错
git rebase --abort
參考:
1. 使用git rebase合并多次commit
2. 聊下 git rebase -i
8.关于修改文件夹权限
加入-R 参数,就可以将读写权限传递给子文件夹。例如:chmod -R 777 /home/mypackage
那么mypackage 文件夹和它下面的所有子文件夹的属性都变成了777。777是读、写、执行权限…
9.cherry-pick——将A分支中的某个提交放到B分支
//先在A分支获取commit哈希值 git log commit 38361a68138140827b31b72f8bbfd88b3705d77a Author: Siwei Shen <siwei.shen@focusbeijing.com> Date: Sat Dec 10 00:09:44 2011 +0800 //切换到B分支 git checkout old_cc //将A分支获取的commit哈希值贴给cherry-pick $ git cherry-pick 38361a68
10.主从分支开发操作流程
一般分支的作用是为了不影响主线而进行的独立开发,所以在分支上开发好之后将其合并到主分支之后,可将该分支删除或保留。1.切换到分支
git checkout【branchname】
2.将修改提交到分支上
git commit & git push
3.切换到master分支
git checkout master
4.更新master代码
git pull
5.执行合并操作
git merge 【branchname】
如果有冲突,会提示你,调用git status查看冲突文件。解决冲突,然后调用git add或git rm将解决后的文件暂存。
6.所有冲突解决后,git commit & git push 提交代码到主分支上。
查看各个分支当前所指的对象:$git log –oneline –decorate
将会显示:
f30ab (HEAD, master, testing) add feature #32 - ability to add new
34ac2 fixed bug #1328 - stack overflow under certain conditions
98ca9 initial commit of my project
参考文章:
Git查看、删除、重命名远程分支和tag
相关文章推荐
- 版本控制工具Git 常用操作命令
- 版本控制工具git的安装和常用命令
- 版本控制工具git的安装和常用命令
- git--版本工具的常用命令以及初始化实操
- 项目开发版本控制工具之常用git命令总结
- Git版本管理工具常用命令说明
- 版本控制工具Git详细介绍和常用命令
- git 版本管理工具常用命令
- Git 版本控制库常用命令
- Repo和Git 版本管理常用命令
- git revert 后悔了 还原修改前的版本 + git 常用命令
- git reset 回退以前某个版本及常用命令(随时更新)
- Repo和Git 版本管理常用命令总结
- GIT 版本控制常用命令学习汇总
- GIT 版本控制常用命令汇总
- 版本控制-Git服务器搭建和常用命令使用
- Repo和Git 版本管理常用命令
- git revert 后悔了 还原修改前的版本 + git 常用命令
- Repo和Git 版本管理常用命令
- 【Git/Github学习笔记】Git常用命令(版本回退)