Git - 常用命令


带你深入掌握Git、GitHub和GitLab详细教程


多人同时修改不同文件或同一文件的不同地方

git push 

返回信息

 ! [rejected]        master -> master (fetch first)
error: failed to push some refs to 'https://github.com/demo/demo.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

两种方案:
第一种是直接pull
第二种:

git branch -av

查看分支会出现一个ahead 1,说明本地分支多余远程一个提交

* master                2dd5429 [ahead 1] local edit a
git fetch
git branch -av

git fetch 后查看分支会出现一个ahead 1, behind 1。ahead 1说明本地分支多余远程一个提交,behind 1也说明本地落后远程一个提交

* master                2dd5429 [ahead 1, behind 1] local edit a

现在执行merge操作

git merge origin/master

没有冲突提交

git push origin

merge问题

git merge origin/dev

提示:原因是两个分支不是一个源头,–allow-unrelated-histories进行允许合并,即可解决问题

refusing to merge unrelated histories

执行如下解决

git merge --allow-unrelated-histories origin/dev

发现merge错了怎么办? 下面的命令即可恢复merge之前的状态

git merge --abort

将变更的文件放到暂存区

git add -u

add+commit

git commit -am '修改提交'

分支操作

查看分支:git branch
创建分支:git branch
切换分支:git checkout
创建+切换分支:git checkout -b
合并某分支到当前分支:git merge

不能删除当前分支
删除本地分支命令 master_bak
git branch -d master_bak
删除远程分支命令 master_bak
git push origin :master_bak
删除一个没有合并过的分支
$ git branch -D feature-vulcan

修改分支名称
先删除远程分支
重命名本地分支
重新提交一个远程分支
例:
将远程分支的dev分支重命名为develop分支
先删除远程分支
git push --delete origin dev
重命名本地分支
git branch -m dev develop

重新提交一个远程分支
git push origin develop

删除文件

git rm file

log操作

查看提交历史
git log --oneline
查询提交历史
$ git log --pretty=oneline --abbrev-commit
查看某个文件提交历史
git log --pretty=oneline /d/workspaces/GitDown/credit-api/src/main/java/com/credit/api/util/factory/DataFactory.java
查看修改的内容
git log -p 7eeacc7ae9eb63f8f40eb24af280939a2ca54490
git log --graph命令可以看到分支合并图

远程代码库回滚

这个是重点要说的内容,过程比本地回滚要复杂
应用场景:自动部署系统发布后发现问题,需要回滚到某一个commit,再重新发布
原理:先将本地分支退回到某个commit,删除远程分支,再重新push本地分支
操作步骤:
1、git checkout the_branch
2、git pull
3、git branch the_branch_backup //备份一下这个分支当前的情况
4、git reset --hard the_commit_id //把the_branch本地回滚到the_commit_id
5、git push origin :the_branch //删除远程 the_branch
6、git push origin the_branch //用回滚后的本地分支重新建立远程分支
7、git push origin :the_branch_backup //如果前面都成功了,删除这个备份分支
如果使用了gerrit做远程代码中心库和code review平台,需要确保操作git的用户具备分支的push权限,并且选择了 Force Push选项(在push权限设置里有这个选项)
另外,gerrit中心库是个bare库,将HEAD默认指向了master,因此master分支是不能进行删除操作的,最好不要选择删除master分支的策略,换用其他分支。如果一定要这样做,可以考虑到gerrit服务器上修改HEAD指针。。。不建议这样搞

pull push 省去指定分支

git branch --set-upstream-to=origin/dev_3
git pull 即可


继续深入学习

带你深入掌握Git、GitHub和GitLab详细教程


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Posh-git-master是一个基于PowerShell的Git命令提示工具集。它提供了一组命令和函数,可以增强使用Git时的操作效率和体验。 Posh-git-master具有以下几个主要的特点和功能: 1. 命令提示符:Posh-git-master会自动显示当前所在的Git分支和工作目录状态。这使得用户可以一目了然地知道自己当前的操作环境。 2. 自动补全:使用Posh-git-master时,用户可以通过按Tab键进行命令补全。它会自动匹配并显示可能的Git命令、参数、分支名等,减少了用户的输入工作。 3. 提示信息:Posh-git-master会根据当前工作目录状态,提供相关的提示信息。比如,当存在未提交的修改时,它会在提示信息中显示相应的提示,以便用户及时提交修改。 4. 检查文件状态:Posh-git-master可以检查文件是否被修改、新增或删除,并将这些信息显示在提示信息中。这有助于用户了解自己的修改是否已经被Git跟踪。 5. 快捷命令:Posh-git-master通过提供一系列的快捷命令,简化了Git操作的流程。用户可以使用这些命令完成常用的操作,如提交修改、切换分支等,提高了开发效率。 总的来说,Posh-git-master是一个功能强大的Git命令提示工具集,可以帮助用户更高效地使用Git进行版本控制。无论是在个人项目还是团队协作中,它都能提供便利和支持。 ### 回答2: posh-git-master是一个在Windows操作系统上开发的Git命令行工具。它提供了一套方便的命令提示符和自动完成功能,使得在Windows终端中使用Git更加简便和高效。 posh-git-master的核心功能包括:Git命令的智能提示、状态信息的展示、分支名称的显示等。它通过改变命令提示符的颜色、添加分支信息和状态提示来提高命令行的可读性,帮助开发人员更好地理解和管理项目。 使用posh-git-master,开发人员可以更加方便地使用Git命令。它会根据当前的Git状态,自动显示当前所在的分支名称,并提示待提交、修改或冲突的文件。这样,开发人员可以快速了解当前工作区的状态,以及哪些文件需要被添加、提交或解决冲突。 此外,posh-git-master还提供了智能的命令提示功能。当输入Git命令时,它会根据已经输入的内容自动补全命令或参数,减少了人工记忆和输入的负担,提高了开发效率。 总之,posh-git-master是一个功能强大的Git命令行工具,它改善了Windows用户使用Git的体验。通过提供智能提示、状态信息展示和命令自动完成等功能,它帮助开发人员更好地理解、管理和操作Git版本控制系统,提高了开发效率和工作质量。 ### 回答3: posh-git-master是一种在Windows操作系统上使用的命令行工具,用于提供更加强大和便捷的Git版本控制功能。 posh-git-master可以让开发人员在命令行中直接使用Git命令,而无需切换到其他版本控制工具。它通过对命令行界面进行优化,实现了更加友好的用户体验和更高效的工作流程。 使用posh-git-master,开发人员可以轻松地查看当前所在的Git分支,以及在文件夹中进行版本控制操作。该工具还会在命令行中显示有关文件状态的信息,例如被修改的文件、待提交的文件、已经被追踪的文件等等。这些信息的展示可以帮助开发人员更好地维护 Git 仓库的状态,从而更加准确地进行版本控制和提交。 此外,posh-git-master还支持自定义提示符和补全功能。开发人员可以根据自己的喜好和习惯,将命令行的提示符定制为自己喜欢的风格。同时,工具还提供了自动补全功能,当开发人员输入命令或者文件路径时,可以自动匹配已经存在的Git命令或者文件名,大大提高了工作效率。 总之,posh-git-master可以帮助开发人员更好地管理和控制Git版本,并通过优化命令行界面提供更加便捷和高效的工作环境。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值