您的位置:首页 > 其它

Git基本大部分操作常用操作

2016-08-14 01:25 211 查看

简介

使用git时,有很多常用操作和命令,进行记录。以备查看。(对于暂存器概念等,其他地方搜索查看即可)详细命令内容,仍需自行搜索查看了。

基本的查看与提交

git status 查看当前目录状态

git add -u . (git add .) 添加文件

git commit -m “update:进行的修改操作,修改说明”

日志

git log 显示所有提交的版本(附带版本码)

拉取上传

git push origin master 上传远程代码

git pull origin master 拉取远程代码

git pull – git fetch

git fetch origin master

撤销

当文件add或者commit等之后,需要返回之前的步骤,或放弃本次修改,可使用git reset 命令

版本回退基本命令:git reset –hard <版本码>

回退以下几种方式:

git reset –mixed <版本码>:此为默认方式,它回退某个版本,保留目前的源码,回退commit和index(add)信息

git reset –soft <版本码>:此方式为回退到某个版本,保留目前的源码,只回退commit信息,不会恢复到index file级别

git reset –hard <版本码> :彻底回退到某个版本信息

注:HEAD指当前版本,HEAD^指上个版本,可进行如下操作

当前版本master_3,回退到master_2使用命令 git reset –hard HEAD^

可参考以下文章详细描述:

http://yijiebuyi.com/blog/8f985d539566d0bf3b804df6be4e0c90.html

分支创建与删除

git branch master_1 基于当前分支创建新的分支

git checkout master_1 切换分支

git checkout -b master_1 创建并切换新的分支,此处等同于 git branch master_1 git checkout master_1

git checkout -b snapshot origin/snapshot 创建新分支关联远程(常用)

git checkout -b snapshot –track origin/snapshot 创建新的分支并关联远程分支

git branch -d master_1 删除分支

git branch -D master_1 强制删除分支(分支未进行过合并操作)

git push origin :branch-name 删除远程分支(推送空分支到远程即删除)

git branch –set–upstream local origin/local 本地分支,管理远程分支

合并分支

git merge master 将master分支到当前分支

注:合并分支时,常常会出现合并的代码丢失,冲突等。安全的合并如下:

master 主分支(线上) feature 子分支(新功能)

若新功能上线,则应该:

1.2个分支全部拉取到最新代码

2.切换到feature分支,合并master代码,解决冲突

3.切换到master分支,合并feature代码(不会再有冲突,代码不会丢失)

其他分支

git branch -vv 查看本地分支和远程分支的关联关系

git remote prune origin 远程分支刷新(远程分支有删除的情况,本地未跟踪到,仍存在删除分支)

git push origin master (git push -u origin master 参数-u可以将本地不同分支上传到服务器不同分支,此处待考察)

远程仓库部分

只有一份代码,但是想同时上传到不同的gitlib项目当中,可采取如下命令:

git remote add git@address 添加remote远程地址2个,一份代码可以提交到多个平台上去

submodule部分

本地项目中,可加入其他git项目,例如:web项目包含前端、后端项目。后端git项目中,指定一个文件夹,可创建submodule,用于拉取前端代码。如此,一个项目包含了后端、前端代码。

1.创建进入需要子模块的目录(例如:front文件夹),使用命令:git submodule add @git 将其他git项目加入次项目的front目录当中(自动添加.gitsubmodel文件)

2.后续成员再拉取全新的此项目时,front文件夹是空的,什么都拉取不到,采取如下方式初始化此文件夹的git子模块即可。

git submodule init front

git submodule update front 更新子模块

注:

此处遇到一个问题,一个git项目,随便指定了一个文件夹,便进行子模块的初始化操作。初始化好了之后,发现子模块文件路径不好。打算采取新的文件夹初始化,便使用git reset –hard HEAD^命令。使得工作区干净,但是再次初始化子模块时,却报错了。提示:already exists in the index等类似报错,告诉你子仓库已经存在了,无法再次添加相同的子仓库,必须进行处理。都回滚还不行,此时,可采取如下方式处理:进入项目的.git文件,找到modules文件夹,删除,就处理好了。

对于此,详细参考stackoverflow的解释,如下:

http://stackoverflow.com/questions/12898278/issue-with-adding-common-code-as-git-submodule-already-exists-in-the-index

还有其他的命令,可参考以下文章,挺好的:

http://blog.csdn.net/kangear/article/details/13169395
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  git