git向分支提交代码操作
基本命令
1.查看所有分支
git branch -a (看看是否连接上远程的git)
2.创建分支
git branch xxx(为你的分支起名字)
3.切换分支
git checkout xxx(切换到你创建的分支,xxx为你要切换分支的名字)
4.添加修改代码到缓存(注意最后的"."前面有个空格).是提交当前目录所有修改的
git add .
5.添加提交代码的备注
git commit -m "xxx"(xxx为本次提交代码的备注)
6.提交代码到指定的分支
git push origin xxx (xxx为要提交代码的分支名称)
7.如果git push这个步骤出现了错误,是因为是git服务器中的你提交的文件不在本地代码目录中,可以通过如下命令进行代码合并,然后在使用第6步
git pull --rebase origin xxx(xxx为要提交代码的分支名称)
如果你需要删除分支在创建
1.删除远程你所创建的分支
git push origin --delete xxx(xxx为你想删除的远程分支名称)
2.删除本地分支
git branch -D xxx(xxx为你想删除的本地分支名称)
如果提示你无法删除本地分支,那是因为你目前还在当前分支,切换一下分支就好了
git log --name-only 每次修改的文件列表
遇到錯誤
新建本地分支后将本地分支推送到远程库, 使用git pull 或者 git push 的时候报错
gitThere is no tracking information for the current branch.
Please specify which branch you want to merge with.
See git-pull(1) for details
git pull <remote> <branch>
If you wish to set tracking information for this branch you can do so with:
git branch --set-upstream-to=origin/<branch> merged0.9.6
是因为本地分支和远程分支没有建立联系 (使用git branch -vv 可以查看本地分支和远程分支的关联关系) .根据命令行提示只需要执行以下命令即可
git branch --set-upstream-to=origin/远程分支的名字 本地分支的名字
git merge最简洁用法
一、开发分支(dev)上的代码达到上线的标准后,要合并到 master 分支
git checkout dev
git pull
git checkout master
git merge dev
git push -u origin master
二、当master代码改动了,需要更新开发分支(dev)上的代码
git checkout master
git pull
git checkout dev
git merge master
git push -u origin dev
git restore指令和git restore --staged 的使用
git restore xx.py 将修改过的文件取消修改(在工作区)
git restore --staged 将暂存区的取出来,但不会更改文件 (git add 文件后为暂存区)
git merge后,想恢复之前版本步骤
一共需要三个步骤:
第一步:git checkout到你想恢复的分支上
1.git checkout 分支名
第二步:git reflog查出要回退到merge之前的版本号
git reflog
第三步:git reset --hard 版本号,就可以回到merge之前的代码状态了
git reset --hard a1d566d
成功了
git reset HEAD ,回退git add 后的
git reset HEAD^ ,回退上一版本
https://blog.csdn.net/chenpuzhen/article/details/92006378
git commit之后,想撤销commit
写完代码后,我们一般这样
git add . //添加所有文件
git commit -m "本功能全部完成"
执行完commit后,想撤回commit,怎么办?
这样凉拌:
git reset --soft HEAD^
这样就成功的撤销了你的commit
注意,仅仅是撤回commit操作,您写的代码仍然保留。
说一下个人理解:
HEAD^的意思是上一个版本,也可以写成HEAD~1
如果你进行了2次commit,想都撤回,可以使用HEAD~2
至于这几个参数:
--mixed
意思是:不删除工作空间改动代码,撤销commit,并且撤销git add . 操作
这个为默认参数,git reset --mixed HEAD^ 和 git reset HEAD^ 效果是一样的。
--soft
不删除工作空间改动代码,撤销commit,不撤销git add .
--hard
删除工作空间改动代码,撤销commit,撤销git add .
注意完成这个操作后,就恢复到了上一次的commit状态。
顺便说一下,如果commit注释写错了,只是想改一下注释,只需要:
git commit --amend
此时会进入默认vim编辑器,修改注释完毕后保存就好了。
合并指定分支的某个文件
另外如果只想将feature分支的某个文件f.txt合并到master分支上。
1: git checkout master
2: git checkout --patch feature f.txt
第一个命令: 切换到feature分支;
第二个命令:合并feature分支上f文件到master分支上,将feature分支上 f 文件追加补丁到master分支上 f文件。你可以接受或者拒绝补丁内容。即提示输y或者n
如果只是简单的将feature分支的文件f.txt copy到master分支上;
git checkout master
git checkout feature f.txt
如果只是简单的将A_branch分支的文件f.txt copy到B_branch分支上;
git checkout B_branch
cd path/to/f.txt
git checkout A_bracn f.txt
git commit 提交版本的描述信息,编写前缀规范
git commit -m "feature: 新建.gitignore忽略文件"
git commit 提交版本的描述信息,编写前缀规范:
描述前缀 | 描述 |
---|---|
feature: | 本次提交的代码用于开发新功能,新增业务 |
fix: | 本次提交的代码用于修复bug问题、漏洞 |
docs: | 本次提交的代码用于修改文档,注释等相关 |
style: | 本次提交的代码用于修改代码格式,不影响代码逻辑,常见的代码规范:PEP8,PEP484 |
refactor: | 本次提交的代码用于项目/代码重构,理论上不影响现有功能(针对代码的重写,改造原来的模块/类/函数/方法) |
perf: | 本次提交的代码用于提升性能,代码优化 |
test: | 本次提交的代码用于增加或修改测试用例代码 |
deps: | 本次提交的代码用于升级项目依赖(更新依赖模块) |