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@example.com"
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
具体参考:https://www.cnblogs.com/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@example.com"
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,然后百度解决了。参考如下:
https://blog.csdn.net/jiangyu1013/article/details/78852547
https://www.cnblogs.com/ryxiong-blog/p/11269066.html

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

参考链接:https://www.cnblogs.com/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 v20210410

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 条提高效率的命令

其他文章推荐

https://www.wolai.com/aiDhVbVJRkNx6rSC1VUhwa?theme=light

团队合作开发常用git操作相关推荐

  1. git 修改commit_结合IDEA与命令行,解决常用git操作与特殊情况的最佳实践

    本文适合总觉得git操作不够顺滑,被各种分支问题搞得焦头烂额的Java业务开发同学. 如果是git的初学者,建议搜索下git其他入门教程,这方面资料很多,非常推荐git init一个新项目,然后本地操 ...

  2. OpenStack开发过程中常用Git操作场景(转)

    2019独角兽企业重金招聘Python工程师标准>>> Git是一个分布式的代码管理库,linux之父开发,用了三年多了,直观感受的优点如下: 一是真正的分布式,既不用担心哪天服务器 ...

  3. eclipse git 取远程代码_IDEA中的Git操作,看这一篇就够了!

    大家在使用Git时,都会选择一种Git客户端,在IDEA中内置了这种客户端,可以让你不需要使用Git命令就可以方便地进行操作,本文将讲述IDEA中的一些常用Git操作. SpringBoot实战电商项 ...

  4. Git代码管理常用命令操作

    一.Git提交代码过程 安装好Git,连接远程仓库地址,拉取代码到本地分支master,根据本地分支master创建分支b,修改完毕后,可以commit到本地分支b,之后可以提交到远程仓库地址,若没有 ...

  5. git菜单形式的_Idea:Git的常用菜单操作和常用命令

    工作中多人使用版本控制软件协作开发,常见的应用场景归纳如下: 假设小组中有两个人,组长小张,组员小袁 场景一:小张创建项目并提交到远程Git仓库 场景二:小袁从远程Git仓库上获取项目源码 场景三:小 ...

  6. Git操作常用的命令都在这里了

    转载自 Git操作常用的命令都在这里了 创建仓库 git init 在当前目录执行,会生成 .git目录文件,这个和SVN一致. 提交到仓库 git commit -m "first com ...

  7. 2020-12-26 工作常用 Linux 操作:磁盘卸载、 自动化挂盘脚本 、磁盘分区合并、ansible、git 设置相关

    [工作常用 Linux 操作:磁盘卸载. 自动化挂盘脚本 .磁盘多个分区合并.ansible .git 设置相关] 1.查看 欧拉系统 的版本号:rpm -q --provides euler0rel ...

  8. 常用的git操作指令

    一.项目中常用的git操作指令 git stash //将修改 的代码存到暂存区 git pull --rebase origin master //当前分支名称 git stash pop //将你 ...

  9. git详细介绍,以及常用的操作,命令

    GIT的介绍 官方中文版通俗易懂文档 git精讲视频 git分支操作 1.Git和svn的区别 Git是分布式版本控制系统 ,即局域网中,只要创建了git版本库的相关信息,该电脑就可以作为git的一个 ...

  10. 01《穿越时空的git》科幻小电影-Git创建版本库和常用命令操作-提交、回退、撤销、删除

    小时候看过一部印象很深的剧叫做<穿越时空的爱恋>,今日也厚着脸皮导演一部<穿越时空的git>,不上映,纯属自嗨! 1.创建版本库 what is 版本库?无论我们平常使用git ...

最新文章

  1. 程序人生系列谈:《程序员》带给我的启发故事
  2. [ 搭建Redis本地服务器实践系列三 ] :图解Redis客户端工具连接Redis服务器
  3. why always WebContent is added as prefix of url when repository request served
  4. Unicode的一些类型转换问题
  5. 用了Dapper之后通篇还是SqlConnection,真的看不下去了
  6. Linux高频命令汇总,Linux高频命令
  7. mysql 开启慢查明_mysql开启慢查询方法
  8. 详解:hiveserver2的使用与介绍
  9. SylixOS 启动时mmu 初始化
  10. 「WC 2019」数树
  11. 星星之火-56:前传接口 CPRI容器的字长、能力与CPRI速率的对应关系
  12. python语言程序设计袁方答案_北邮“爱课堂”教学平台
  13. 二頌(金火互易過程)
  14. SD卡和SDHC卡操作
  15. android 调出键盘表情_Android高仿微信表情输入与键盘输入详解
  16. 417页16万字智慧医院信息化大数据建设 设计方案
  17. 【linux/shell】Centos7环境搭建、服务器搭建(脚本)
  18. CSGO 制作cfg文件及一些常用命令
  19. CentOS7 能ping通网关不能上网
  20. win7旗舰版蓝屏代码说明

热门文章

  1. js 禁止鼠标菜单键及键盘快捷键
  2. 计算机断电会自动重启吗,电脑开机断电或自动重启的分析及解决方法
  3. 计算机学会a类论文是sci吗,什么是SCI、EI、CCF、DASFAA
  4. 学生:无效文件.dsn问题
  5. 利用python实现杜利特尔分解法
  6. 第一天计算机谁发明的,世界公认三大天才,尼古拉特斯拉是当之无愧的第一天才...
  7. python有趣小程序春节祝福-Python自动回复微信好新年祝福
  8. lpx寒假作业案例7
  9. uint8_t和char的相互转换
  10. 几何分布的期望和方差公式推导_统计学笔记——概率、期望、排列组合和几何分布等...