git 使用笔记

个人在工作和学习中使用的一些git的笔记,在这里放一下

修改远程仓库地址

有时候远程仓库地址变了,提交不了代码,需要再本地修改远程仓库的地址。下面几种方式都可以修改。

修改命令

直接设置命令修改

git remote origin set-url [email protected]:front/loan.git

先删除,再添加

git remote rm origin
git remote add origin [email protected]:front/loan.git

配置文件修改

找到项目中的.git/config文件,打开。

[core]
	repositoryformatversion = 0
	filemode = false
	bare = false
	logallrefupdates = true
	symlinks = false
	ignorecase = true
[remote "origin"]
	url = [email protected]:front/loan.git # 这里修改为新的git地址即可
	fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
	remote = origin
	merge = refs/heads/master
[branch "revive"]
	remote = origin
	merge = refs/heads/revive
[user]
	name = xxx
	email = [email protected]
	password = xxxxx

一些有用的命令

这里是个人在项目中一些有用的命令,由于太杂了,没有归类

合并某一个提交到某个分支

有时候分支管理feature的某些功能需要临时上线,需要这个命令

git cherry-pick 某个commit id

回滚到某个提交

有时候突然某个功能又不上了,但是又提交上去了。如果不是很大的问题可以直接改回去。但是如果不好改回去,可以使用这一条命令,不过需要注意的是,它会把这次提交之后的提交记录全部清空。慎用。

git reset --hard d7009d0e # 提交记录的id
git push -f

打tag

没什么多说的

git tag -a v1.0.0 -m '描述'
git push --tags

git stash

当项目中在开发新功能的时候,老功能突然需要维护时,新功能还没开发完成,不可能直接放弃,这时候就可以用git stash 暂存当前开发进度

git stash # 暂存新功能
git stash pop # 还原

git 删除分支

一般是在合并分支之后执行

git push origin --delete 分支名称 # 删除远程分支
git branch -d 分支名称 # 删除本地分支

git flow开发流程

初始化

git flow init

Which branch should be used for bringing forth production releases?
   - master
Branch name for production releases: [master]
Branch name for "next release" development: [develop]

How to name your supporting branch prefixes?
Feature branches? [feature/]
Bugfix branches? [bugfix/]
Release branches? [release/]

输之后按默认的来就可以

开始开发

一般不会直接在develop上开发,而是自动创建feature分支

git flow feature start functions
Switched to a new branch 'feature/functions'

开发完成

git flow feature finish functions
Switched to branch 'develop'
Your branch is up to date with 'origin/develop'.
Updating 0daead3..83e9634
Fast-forward

这个命令会将feature上的代码自动合并到develop分支,并删除当前的feature分支。

创建release

develop分支上面的开发完成了bug修复了就可以创建release了。

git flow release start 0.1.0
Switched to a new branch 'release/0.1.0'

Summary of actions:
- A new branch 'release/0.1.0' was created, based on 'develop'
- You are now on branch 'release/0.1.0'

start后面接的是版本号,方便发布之后自动tag区分,这时候可以在这个分支上修改一些版本的相关的文件

完成release

git flow release finish '0.1.0'
Switched to branch 'master'

这个时候会自动合并release分支到master和develop,并且自动打tag

hotfix

当在release分支发布之前突然需要改个上么东西影响上线,这时候feature是不行的了,就需要hotfix

git flow hotfix start doc-mis
Switched to a new branch 'hotfix/doc-mis'

改完问题,完成hotfix

git flow hotfix finish 'doc-mis'
Branches 'master' and 'origin/master' have diverged.
And local branch 'master' is ahead of 'origin/master'.

这时候也会自动打一个hotfix的tag

参考资料

https://blog.csdn.net/u013066244/article/details/79920012
https://www.cnblogs.com/kuyuecs/p/8328060.html
https://www.git-tower.com/learn/git/ebook/cn/command-line/advanced-topics/git-flow#

你可能感兴趣的:(git,git)