git的使用
仓库篇
创建仓库
1 | git init |
配置
1 | git config --list #查看当前git的配置信息 |
git免除账号密码
git config --global credential.helper store
文件篇
add的使用
1 | git add *.c |
提交
1 | git status #告诉你 git add 和 git commit 的进展。status 信息还包括了添加缓存和移除缓存的相关指令。 |
项目历史
1 | git log #使用默认格式显示完整地项目历史。如果输出超过一屏,你 |
分支篇
-
分支创建
git branch br_name
-
分支切换
git checkout br_name
-
分支合并
git merge br_name #将br_name合并到当前分支
-
分支列表
1 | git branch #本地分支 |
-
分支删除
git branch -d br_name
-
查看分支所属
git reflog --date=local | grep 分支名 -
查找两个分支的共同祖先
git merge-base v1.11.2_a v1.11.4 -
自动同步分支
git fetch --prune -
git删除远程分支后本地同步
1 | git remote update origin --prune //更新远程分支列表 |
分支规范
- git主分支(master)。它是自动建立,用于发布重大版本更新
- git开发主分支(develop)。日常开发在此分支上进行
- git临时性分支:用于应对一些特定目的的版本开发(验证OK后,应该删除此分支),主要有:
- 功能(feature)分支:它是为了开发某种特定功能,从Develop分支上面分出来的。开发完成后,要再并入Develop。可以采用feature-的形式命名。
- 预发布(release)分支:指发布正式版本之前(即合并到Master分支之前),我们可能需要有一
个预发布的版本进行测试。预发布分支是从Develop分支上面分出来的,预发布结束以后,必须合
并进Develop和Master分支。它的命名,可以采用release-的形式 - 修补bug(hotfix)分支:软件正式发布以后,难免会出现bug。这时就需要创建一个分支,进行bug修补。修补bug分支是从Master分支上面分出来的。修补结束以后,再合并进Master和Develop分支。它的命名,可以采用hotfix-***的形式。
注意事项: 一个分支尽量开发一个功能模块,不要多个功能模块在一个分支上开发。 feature 分支
在申请合并之前,最好是先 pull 一下 develop 主分支下来,看一下有没有冲突,如果有就先解决
冲突后再申请合并。
tag篇
列出tag
git tag #打印当前仓库所有的tag
git tag -l ‘v1.5’ #搜索符合模式的tag
打tag
git tag [项目名]
git tag -a [项目名]-m ‘tag of [name]’
切换到tag
git checkout name
删除tag
git tag -d name
将tag推送到服务器
git push origin v0.1.2 # 将v0.1.2 Tag提交到git服务器
git push origin –-tags # 将本地所有Tag一次性提交到git服务器
版本控制
reset版本回滚
git reset herd_id
reflag查看命令操作的历史
- 查看历史
- 使用reset回退到指定hard id的版本
提交
git提交
git push origin HEAD:refs/for/your_version
cherry-pick
git cherry-pick commit_id //将此commit id的提交合并到当前分支
git push 错了怎么回退
1、git log 查看版本号。commit后面那一串字符就是版本号,第一条记录就是你最后提交的一次的版本 号。我们需要回退到它前面那个版本。复制第二条记录的版本号。然后按英文 q退出。
2、git reset --hard 版本号(前面要求复制的)这会删除本地修改文件,也就是本地和远程版本内容一 致。
git reset --soft 版本号 只会将远程的版本回退。本地文件不动。(建议使用这条)如果只是回退上一个 版本,指令可以这样写。git reset --soft HEAD^。
git rebase
git rebase 命令修改第一笔提交,而不影响第二笔提交。
假设你的本地分支的提交历史记录如下:
1 | c2f02d5 (HEAD -> master) second commit |
其中,第一笔提交标记为 614a3a7 。
要修改第一笔提交,需要执行以下步骤:
-
运行 git rebase -i HEAD~2 命令,将最后两个提交(即 614a3a7 和 c2f02d5 )传递给 rebase 命令。此命令将打开与当前编辑器关联的交互式文件。
-
在文本编辑器中,找到要修改的提交,并在行首将 pick 更改为 edit 。保存并关闭文件。 3. 运行 git commit --amend 命令来修改提交。这将打开默认编辑器,其中包含您上次提交的消 息。
-
请修改提交消息。然后保存并关闭编辑器。
-
运行 git rebase --continue 命令以完成重新定义基础行操作。如果有冲突需要解决,请解决冲 突并使用 git add 命令添加更改后执行 git rebase --continue 。 完成这些步骤后,你会得到新的提交历史:
1 | 复制代码* f455b5d (HEAD -> master) first commit |
现在,第一笔提交已被修改为 f455b5d ,而第二笔提交仍然保持不变为 c2f02d5 。
需要注意的是,这种方法只应在本地分支上使用。如果您的更改已经被推送到共享分支中,那么对历史 记录进行重新整理可能会引起合并冲突和其他问题。
git常用指令
重要指令 clone +fetch + pull +checkout + add +commit +push log+merge
常用指令速查
基本操作类:
git init
初始化仓库
git log
查看日志
git add <文件名>
添加到暂存区
git commit -m '注释'
提交到仓库
git merge <分支名>
合并指定分支到当前活动分支
-分支切换类
git checkout <分支名>
切换到某个分支
git checkout -b <分支名>
创建并切换到某个分支(分支原来不存在)
-远程操作
git clone <远程地址>[本地文件]
clone 远程仓库到本次
git pull
拉取远程仓库的修改并合并
git push --set-upstream origin 分支名
推送本地修改到远端分支
--set-upstream 表示和远端分支绑定关联关系,只有第一次推送时才需要此参数