赞
踩
通过浏览器查看某个命令的详细配置:
git help --web xxxx
// 如 git help --web log / git help --web reset
查看仓库名:
git remote
查看所在分支名(本地分支):
git branch
查看所有分支名(本地分支+ 远程分支):
git branch -a
删除本地分支:
git branch -d 分支名
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
切换到任意commit
git checkout 提交id
创建并切换到新分支
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
为了让同组开发人员也能把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
在多人协作的时候,每次进行版本的push都要先同步一下自己本地项目和远程仓库上的最新版本代码,避免出现代码冲突问题。
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 origin 分支名 (把想要的分支内容拉取到本地)
1、拉取github仓库代码同步合并到本地文件:git pull origin 分支名
2、然后直接到本地文件中进行合并代码后的冲突代码的取舍(编辑器工具有智能提示,所以很容易进行对比,手动解决冲突)
3、最后就可以把完好的没有冲突的代码提交同步到github了
先在github上创建一个项目,然后把远程地址拿到。(如果github上创建了README.md文件,那么本地就不要创建了,不然会发生冲突提交不了,而要选择删除一个)
1、在根目录下运行命令初始化仓库
git init
2、把写好的本地项目添加到暂存区
git add .
3、在commit之前有可能会叫你先把自己信息填好,方便知道是谁提交的代码
git config --local user.email "you@example.com"
git config --local 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
参考链接: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
注意:本地分支回滚后,版本将落后远程分支,必须使用强制推送覆盖远程分支,否则无法推送到远程分支
git reflog
// 查看历史变更记录的对应引用位置
git reset --hard HEAD@{n}
//(n是你要回退到的引用位置)回退。
比如: git reset --hard 40a9a83
开发一个项目我们会进行很多次版本升级,每次升级都应该打个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名
1、修改本地分支名称
git branch -m oldBranchName newBranchName
2、将本地分支的远程分支删除
git push origin :oldBranchName
3、将改名后的本地分支推送到远程,并将本地分支与之关联
git push --set-upstream origin newBranchName
该知识点参考的文章:点击这里
git cherry-pick
可以理解为"挑拣"提交,它会获取某一个分支的单笔提交,并作为一个新的提交引入到你当前分支上。 当我们需要在本地合入其他分支的提交时,如果我们不想对整个分支进行合并,而是只想将某一次提交合入到本地当前分支上,那么就要使用git cherry-pick
了。
具体使用方式请看:这篇文章
在用git做版本控制器的时候,经常会遇到以下情况:
1、在做1个功能的时候,你自己觉得代码没问题了,就本地commit,然后提交代码,在gitlab上发起和并请求,老大看完之后,觉得你还有修改的地方,把你的代码打回来重新修改,改完之后,本地commit,推到远程,再次发起合并。到此功能做完,但是做完之后发现,你的一个功能commit了两次,当然根据实际情况有些时候你为了做一个功能,来回不止两次,这样子的提交会让这个分支看起来有点杂乱。那么你会想要将你的几次commit合并成一个commit后,再提交,那样子分支看上去会非常清爽。
2、当你做功能的时候,你会遇到需要零时提交的情况(比如你在做A任务,突然来了B任务,在你A任务分支上你会先commit一次,等B任务做完,再回来继续做A,做完之后会再次commit),此时你的一个任务有会有多个commit存在。
如何解决上面的问题请看:这篇文章
文章步骤操作完了需要进行最后一步,强制提交合并的代码,不然远程仓库的提交历史记录是没变化的。
git push --force origin 分支名
Git 不要只会 pull 和 push,试试这 5 条提高效率的命令
https://www.wolai.com/aiDhVbVJRkNx6rSC1VUhwa?theme=light
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。