1. 常规流程
git本地仓库与远程仓库建立连接_我是一个粉刷酱的博客-CSDN博客
git与github建立仓库连接步骤(纯小白教程)_happy乐乐的博客-CSDN博客_github新建仓库
2. 详细使用流程
Git连接GitHub仓库详解 - 段明 - 博客园 (繁杂)
3. 使用百科
〇、全局设置
git config --global user.name "wangty"
git config --global user.email "wangty225@qq.com"
打开git网址:https://github.com/
setting -> SSH and GPG keys ->New SSH key
win+r -> 输入 . -> 回车 -> .ssh
C:\Users\Bingooo\.ssh\
git输入title和key。key取自id_rsa.pub
如果没有.ssh文件夹,则才gitbash中运行如下命令:
ssh-keygen -t ed25519 -C "example@qq.com"
解决Please make sure you have the correct access rights and the repository exists 问题._每天进步一点点-CSDN博客
一、创建本地仓库
mkdir mydir
cd mydir
git init
touch README.md
git add README.md
git add .
git status
git commit -m "submit test"
git add 添加删除
git add . #把新增的、修改的都加到缓存 git add -A #把新增、和修改的、和删除的都加到缓存
三级文件配置路径:
.git/config /.gitconfig #当前用户目录 /etc/gitconfig #git安装目录
.gitignore文件忽略内容demo
# Maven # target/ # IDEA # .idea/ *.iml # Eclipse # .settings/ .classpath .project
删除缓存区所有文件命令
git rm -r --cached . #主要这个点一定要写
重新add到缓存区
git add .
简化git日志输出格式
git log --oneline
显示主分支和自分支git日志 (前面会多个星号)
git log --oneline --graph
二、连接远程仓库
删除origin仓库指针(origin名字可选)
git remote rm origin
创建origin远程仓库指针
git remote add origin git@github.com:wangty225/Canyou.git
查看是否连接成功
git remote -v
删除本地指定的远程地址
git remote remove origin
other:
git branch -a # 查看本地和远程的所有分支 git branch -r # 查看远程所有分支
三、提交代码
提交给远程仓库
git push origin master
加入-u参数,之后的提交,直接使用 git push
git push -u origin master
公式:
git push [repos_pointer] [local_branch]:[remote_branch]
如果local_branch和remote_branch相同,可以写一个省略冒号:
git push [repos_pointer] [branch]
四、拉取版本
1. 从远程仓库拉取代码:
git pull [repos_pointer] [local_branch]:[remote_branch]
相当于:
git fetch git merge
2. 建议使用如下代替 git pull:
git pull --rebase
相当于:
git fetch git rebase
日常开发步骤如下,如果出现冲突:
- git fetch
- git rebase
- 解决冲突
- git add 冲突文件
- git rebase -continue
- git push
无冲突则跳过 3,4,5步骤。
git rebase -continue
git rebase -abort
git补充(fetch和rebase)(带分支介绍图解)
详解git pull和git fetch的区别:_马恩光的博客-CSDN博客(底层逻辑)
git的冲突解决--git rebase之abort、continue、skip_雪抛的博客-CSDN博客
五、创建新分支
1. 创建分支
git branch branchName
2. 切换分支
git checkout branchName
3. 上面两个命令也可以合成为一个命令:
git checkout -b branchName
4. 删除本地分支
git branch --delete dev git branch -d dev git branch -D dev
-d
是--delete
的缩写,在使用--delete
删除分支时,该分支必须完全和它的上游分支merge完成(了解上游分支,可以点击查看链接),如果没有上游分支,必须要和HEAD
完全merge
-D
是--delete --force
的缩写,这样写可以在不检查merge状态的情况下删除分支
--force
简写-f
,作用是将当前branch重置到初始点(startpoint),如果不使用--force
的话,git分支无法修改一个已经存在的分支.5. 删除远程分支
git push origin --delete branchName git push origin -d branchName git push origin -D branchName
git修改远程分支的名称_git修改远程分支名_咸蛋超人l的博客-CSDN博客
六、关联操作
1、 创建追踪分支
git checkout -b [branch] [remotename]/[branch]
2、
- 分支
dev
被设定为追踪服务器为origin
上的远程分支dev
- 切换到
dev
分支上git checkout --track origin/dev
3、如果
checkout
的分支本地不存在,但是和远程分支名一样,git会自动创建追踪分支,并且切换到该分支 :git checkout [branch]
4、本地分支必须和远程分支同名吗?当然不是,我们也可以为本地分支设置不同于远程分支的名字,这样本地
aaa
为远程bbb
的追踪分支:git checkout -b aaa origin/bbb,
5、已有的本地分支追踪远程分支
如果已经有一个本地分支,现在想要关联远程分支,或者修改追踪的上游分支,可以使用
-u
或者--set-upstream-to
来随时关联,生成新的追踪分支.git branch -u origin/cccc
6、查看已经设置的上游分支,该指令会列出所有的分支信息,包含追踪分支的关联关系,建立在上一次git fetch,离线的基础上:
git branch -vv
7、去服务器获取数据,完全获取最新的追踪分支信息,需要更新远程信息,执行:
git fetch --all; git branch -vv
七、撤销操作
撤销上一步git add .
方法1、重新git add .
方法2、head回退到上一次HEAD的位置
git reset HEAD
撤销工作区未提交的所有文件修改
git reset --hard HEAD
撤销上一次commit
git log git reset --hard [commit_id]
八、Git命令简写:
git st # git status git ci # git commit git br # git branch git co # git checkout git mg # git merge git line # git log --oneline
可以直接在git中敲命令,将这些简写添加到git配置中
git config --global -e
然后,可以插入下面的配置:
[alias] st = status co = checkout br = branch mg = merge ci = commit md = commit --amend dt = difftool mt = mergetool last = log -1 HEAD cf = config line = log --oneline latest = for-each-ref --sort=-committerdate --format='%(committerdate:short) %(refname:short) [%(committername)]' ls = log --pretty=format:\"%C(yellow)%h %C(blue)%ad %C(red)%d %C(reset)%s %C(green)[%cn]\" --decorate --date=short hist = log --pretty=format:\"%C(yellow)%h %C(red)%d %C(reset)%s %C(green)[%an] %C(blue)%ad\" --topo-order --graph --date=short type = cat-file -t dump = cat-file -p
九、创建本地仓库并提交给远程仓库(Demo)
典型报错:
1. refusing to merge unrelated histories
git pull origin master --allow-unrelated-histories
项目规范
Production分支(主线分支用于发版,不会直接改)
Master分支,这个分支只能从其他分支合并,不能在这个分支直接修改
Develop分支(开发分支)
这个分支是我们是我们的主开发分支,包含所有要发布到下一个Release的代码,这个主要合并与其他分支,比如Feature分支
Feature分支(新功能分支)
这个分支主要是用来开发一个新的功能,一旦开发完成,我们合并回Develop分支进入下一个Release
Release分支(偏向测试)
当你需要一个发布一个新Release的时候,我们基于Develop分支创建一个Release分支,完成Release后,我们合并到Master和Develop分支
Hotfix分支(紧急bug发布)
当我们在Production发现新的Bug时候,我们需要创建一个Hotfix, 完成Hotfix后,我们合并回Master和Develop分支,所以Hotfix的改动会进入下一个Release
GitHub 私人private仓库添加成员(协作者Collaborators)
git diff的最全最详细的4大主流用法_快乐李同学的博客-CSDN博客
如何使用github中的pull request功能?_wangzi11111111的博客-CSDN博客
在GitHub上fork项目后,如何与原仓库同步?_万猫学社-CSDN博客https://blog.csdn.net/heihaozi/article/details/117219825
【记录】Git pull(拉取),push(上传)命令整理(详细)_weixin_30699831的博客-CSDN博客 前言:博主最近在学习git命令,因为git是一个非常好用的分布式版本管理工具,功能比svn强大,与SVN不同点是Git去中心化,每一个分支都是一个中心,并且支持本地仓库存储,像如今很多大公司都用git做版本控制。话不多说,具体命令整理如下:git拉取远程代码git clone https://xxx.git git拉取远程指定分支下代码(-...https://blog.csdn.net/weixin_30699831/article/details/101982286Git 多人协作开发的过程_Tony的博客-CSDN博客_git多人协作开发流程本文转自https://www.cnblogs.com/onelikeone/p/6857910.htmlGit可以完成两件事情:1. 版本控制2.多人协作开发如今的项目,规模越来越大,功能越来越多,需要有一个团队进行开发。如果有多个开发人员共同开发一个项目,如何进行协作的呢。Git提供了一个非常好的解决方案----多人协作开发。1.多人协作原理典型的做法是,...https://blog.csdn.net/wangliang888888/article/details/80536277