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

    xiaoxiao2025-02-16  11

    简介

    使用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

    转载请注明原文地址: https://ju.6miu.com/read-1296495.html
    最新回复(0)