300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 团队合作开发常用git操作

团队合作开发常用git操作

时间:2021-07-07 16:52:39

相关推荐

团队合作开发常用git操作

1、常用git命令

通过浏览器查看某个命令的详细配置:

git help --web xxxx// 如 git help --web log / git help --web reset

查看仓库名:

git remote

查看所在分支名(本地分支):

git branch

查看所有分支名(本地分支+ 远程分支):

git branch -a

删除本地分支:

git branch -d 分支名

删除远程分支:

git push origin -d 分支名

查看推送至仓库的用户名和邮箱:

git config user.name

git config user.email

设置推送至仓库的用户名和邮箱:

git config --global user.email "you@"

git config --global user.name "Your Name"

–global 对当前用户所有仓库有效

–local 只对某个仓库有效

–system 对系统所有登录的用户有效

显示config配置:

git config --list

打开全局配置文件(修改相关用户名、邮箱、设置命令别名)

vim ~/.gitconfig

刷新远程仓库分支(有时候远程仓库已有分支,但是本地切换不了的时候需要刷新):

git fetch

更新同步远程、本地分支:

git remote update origin --prune

查看仓库名对应的远程仓库的地址:

git remote -v

git远程仓库更换名称,本地如何修改:

git remote set-url origin 新的远程仓库地址

把本地开发项目中的版本区上传到远程仓库(github)命令:

git push 仓库名 分支名//默认是:git push origin master

切换到基础分支,如主干master

git checkout master

创建并切换到新分支

git checkout -b 新分支名

根据远程仓库的分支创建并切换到新分支:

git checkout -b 新分支名 origin/远程对应分支名

git commit -m '注释’中注释写错按了回车之后如何修改提交的注释:

输入命令:git commit --amend

然后进去vim页面进行修改,键入i键进行编辑,esc键退出,键入:wq保存并退出即可。

git放弃本地更改:

尚未使用git add . 时:直接输入命令git checkout .放弃本地所有更改(对新增和删除文件无效)。

其他情况详见:这里

显示上一次提交之前工作目录与git仓库之间的差异:

git diff HEAD^// 在git pull后,可以通过git diff HEAD^ 来查看拉下来的文件有那些具体的修改。

git撤销本次pull:

git merge --abort// 如果不小心pull了代码,并且有冲突,不想解决。想要放弃本次pull就使用这个命令。

查看所有分支的所有操作记录(包括已经被删除的 commit 记录和 reset 的操作):

git reflog

查看有效的全部提交日志(不能查看已经删除了的commit记录):

git log

2、clone项目和提交项目

为了让同组开发人员也能把github上的资源下载下来之后,他修改的版本也能够同步到远程仓库中,那么就要在这个仓库上添加合伙人(collaborator):

此步骤是在github上操作,找到 collaborator的设置地方,然后填好合伙人的用户名设置好,然后点击添加。之后他就会收到一个邀请信息,通过之后就能一同同步更新这个开发项目了。

git status:查看当前状态下的文件变化

1、组员要把项目先克隆下来:git clone 地址

2、安装需要的依赖项,运行项目,参与项目开发:npm install

3、新建并切换到新分支(因为人多了不可能都在主分支master开发):git checkout -b 分支名

4、在执行第五步之前要先解决代码冲突问题(方法如下),如果项目开发不存在冲突问题在继续后面的步骤

5、把写好的本地项目添加到暂存区:git add .

6、把暂存区的项目文件提交到版本区:git commit -m "注释":

7、查看仓库名:git remote//默认是origin

8、查看所在分支名:git branch//默认是master

9、把版本区项目同步到远程仓库(github):git push 仓库名 分支名

如果新分支push代码完了之后,想要在master分支合并,那么久先切换到master分支:git checkout master然后合并:(!!!注意在合并分支前要拉取github最新代码并查看解决冲突问题之后才能合并。`git pull origin master`)git merge 要合并到当前所在分支的新分支名如:git merge winne // 把本地winne分支代码合并到当前master分支如:git pull origin winne // 把远程仓库winne分支代码合并到当前master分支最后再push到远程创库:git push origin master具体参考:/cyl048/p/10232988.html

3、多人协作解决代码上的冲突问题

在多人协作的时候,每次进行版本的push都要先同步一下自己本地项目和远程仓库上的最新版本代码,避免出现代码冲突问题。

法一:git fetch (可以直接分析差异)

1、先同步:git fetch

2、查看本地文件和远程仓库文件的差异:git diff master origin/master

git diff master origin > text.txt 可以把差异放到当前目录下的text.txt文件中

3、查看到差异后可以做一下记录,然后合并代码到本地文件中:git merge origin/master

4、然后到本地文件中进行合并代码后的冲突代码的取舍

5、最后就可以把完好的没有冲突的代码提交同步到github了

法二:git pull (开发中大多使用这个)

使用 git pull origin 分支名 (把想要的分支内容拉取到本地)

1、拉取github仓库代码同步合并到本地文件:git pull origin 分支名

2、然后直接到本地文件中进行合并代码后的冲突代码的取舍(编辑器工具有智能提示,所以很容易进行对比,手动解决冲突)

3、最后就可以把完好的没有冲突的代码提交同步到github了

4、本地开发代码关联新创建的远程仓库

先在github上创建一个项目,然后把远程地址拿到。(如果github上创建了README.md文件,那么本地就不要创建了,不然会发生冲突提交不了,而要选择删除一个)

1、在根目录下运行命令初始化仓库

git init

2、把写好的本地项目添加到暂存区

git add .

3、在commit之前有可能会叫你先把自己信息填好,方便知道是谁提交的代码

git config --global user.email "you@"

git config --global user.name "Your Name"

4、把暂存区的项目文件提交到版本区

git commit -m '注释'

5、本地仓库关联远程仓库

git remote add origin https://xxxxxxxx(远程仓库地址)

6、如果出错的话,就先拉取下远程仓库的代码,此时可能会叫你填写登录github的账号密码,然后解决完冲突后再add、然后commit、最后push

git pull --rebase 仓库名 分支名(拉取下远程仓库的代码)

7、把版本区项目同步到远程仓库(github):

git push -u 仓库名 分支名

ps:我在此过程也遇到过几次失败的push,然后百度解决了。参考如下:

/jiangyu1013/article/details/78852547

/ryxiong-blog/p/11269066.html

5、git代码撤销、回滚到任意版本

参考链接:/lwh-note/p/9639835.html

git log --all// 查看所有分支全部提交日志(详细版本,中间可以使用Enter键显示余下的,输入q键退出查看)

git log// 查看当前分支全部提交日志(详细版本,中间可以使用Enter键显示余下的,输入q键退出查看)

git log --oneline// 查看当前分支全部提交日志(简洁一行版,中间可以使用Enter键显示余下的,输入q键退出查看)

git log -n4 --oneline// 查看当前分支近4条提交记录(简洁一行版)

git reset --hard// 撤销当前工作目录下以及暂存区(使用git add提交到暂存区)的所有变更

git reset --hard HEAD~// 彻底回退到上一次提交版本,本地的源码也会变为那个版本的内容

git reset --hard xxxxxx// 彻底回退到某个版本,本地的源码也会直接变为那个版本的内容

git reset --soft xxxxxx// 回退到某个commit版本,会将该 commit 到最近一次 commit 的所有修改内容全部恢复,而不是只针对该 commit。本地的源码也会变为该 commit 到最近一次 commit 的所有修改内容

git revert xxxxxxx// 回退到指定版本,保留原更改代码,且生成新的提交

如果你的错误提交已经推送到自己的远程分支了,那么就需要回滚远程分支了。 首先要回退本地分支:git reset --hard xxxxxx紧接着强制推送到远程分支:git push origin 分支名 -f注意:本地分支回滚后,版本将落后远程分支,必须使用强制推送覆盖远程分支,否则无法推送到远程分支

6、git撤销pull命令

git reflog// 查看历史变更记录的对应引用位置

git reset --hard HEAD@{n}//(n是你要回退到的引用位置)回退。

比如: git reset --hard 40a9a83

7、git打tag

开发一个项目我们会进行很多次版本升级,每次升级都应该打个tag,其实就是给当前的版本做个标记,以便回退到此版本。

可以去github上看开源的框架ant design之类的,他们就是每次发版都会打tag,以便对不同版本的更新与维护。

在当前要打tag的分支下执行以下命令:

git tag tag名称// 创建tag,如 git tag v1.0.0或者使用升级日期 git tag v0410

git tag// 查看所有标签

git push origin tag名称// 将新建的tag推送到远程服务器。如:git push origin v1.0.0

如果发现创建的tag有问题,则可进行删除:

删除本地tag:git tag -d 要删除的tag名

删除远程tag:git push origin :refs/tags/要删除的tag名

8、修改本地以及远程仓库的分支名

1、修改本地分支名称

git branch -m oldBranchName newBranchName

2、将本地分支的远程分支删除

git push origin :oldBranchName

3、将改名后的本地分支推送到远程,并将本地分支与之关联

git push --set-upstream origin newBranchName

该知识点参考的文章:点击这里

9、git cherry-pick的使用(挑拣指定提交代码合并到当前分支)

git cherry-pick可以理解为"挑拣"提交,它会获取某一个分支的单笔提交,并作为一个新的提交引入到你当前分支上。 当我们需要在本地合入其他分支的提交时,如果我们不想对整个分支进行合并,而是只想将某一次提交合入到本地当前分支上,那么就要使用git cherry-pick了。

具体使用方式请看:这篇文章

10、git 几个commit点合并成一个commit点

在用git做版本控制器的时候,经常会遇到以下情况:

1、在做1个功能的时候,你自己觉得代码没问题了,就本地commit,然后提交代码,在gitlab上发起和并请求,老大看完之后,觉得你还有修改的地方,把你的代码打回来重新修改,改完之后,本地commit,推到远程,再次发起合并。到此功能做完,但是做完之后发现,你的一个功能commit了两次,当然根据实际情况有些时候你为了做一个功能,来回不止两次,这样子的提交会让这个分支看起来有点杂乱。那么你会想要将你的几次commit合并成一个commit后,再提交,那样子分支看上去会非常清爽。

2、当你做功能的时候,你会遇到需要零时提交的情况(比如你在做A任务,突然来了B任务,在你A任务分支上你会先commit一次,等B任务做完,再回来继续做A,做完之后会再次commit),此时你的一个任务有会有多个commit存在。

如何解决上面的问题请看:这篇文章

文章步骤操作完了需要进行最后一步,强制提交合并的代码,不然远程仓库的提交历史记录是没变化的。

git push --force origin 分支名

11、git rebase

你真的懂git rebase吗?

12、5 条提高效率的git命令

Git 不要只会 pull 和 push,试试这 5 条提高效率的命令

其他文章推荐

/aiDhVbVJRkNx6rSC1VUhwa?theme=light

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。