常用 慢慢积累
Git常用命令.png
Workspace:工作区
Index / Stage:暂存区
Repository:仓库区(或本地仓库)
Remote:远程仓库
加入别人的项目:
git config --global user.name "Zysunt"
git config --global user.email "1291609705@qq.com"
cd ~/.ssh
ssh-keygen -t rsa -C “1291609705@qq.com”生存密钥
ssh-keygen -o
cat ~/.ssh/id_rsa.pub
git clone SSH
git branch 查看本地分支
git branch dev_vaccine 创建分支dev_vaccine
git checkout dev_vaccine 切换分支
git pull origin dev_vaccine 获取分支
git branch -D dev_vaccine 删除分支
git branch -a 查看本地和远程仓库的所有分支
git branch -r 查看远程分支
git fetch 将本地分支与远程保持同步
git checkout -b 本地分支名x origin/远程分支名x 拉取远程分支并同时创建对应的本地分支
git fetch --all 将本地所有分支与远程保持同步
git pull --all 拉取所有分支代码
git init 新建一个目录,将其初始化为Git代码库
git add . //添加指定文件到暂存区
git commit -m '提交' //提交暂存区到仓库区
git push origin
git pull
git checkout - // 切换到上一个分支
git checkout -b dev_v = git branch dev_v git checkout dev_v
git reset HEAD^ //就是将HEAD指针前移
//每次commit,master都会向前移动一步,即指向最新的提交
// HEAD则指向你正在工作的本地分支,而git reset修改的就是HEAD
在master
分支上开辟一个新的develop
分支,然后我们根据功能或者业务,再在develop
分支上另外开辟其他分支
,完成分支上的任务后,再将这个分支合并
到develop
分支上.
master
分支和develop
分支都是长期分支
,而我们创建的其他分支则是临时性分支
master
分支:可直接用于产品发布的代码,就是正式版的代码
develop
分支:日常开发用的分支,团队中的人都在这个分支上进行开发
临时性
分支:根据特定目的开辟的分支,包括功能(feature
)分支,或者预发布(release
)分支,又或者是修复bug(fixbug)
分支,临时性分支用完之后一般都会删除
,使得代码库的常用分支始终只有两个长期分支
[图片上传中...(image.png-28b6e2-1615627320757-0)]
git merge
和git rebase
两个命令来进行分支的合并
git merge [branch] //合并指定分支到当前分支
git merge develop 合并develop分支到当前分支master // 快速合并 看不到合并信息
git merge --no-ff -m "合并的信息(TAG)" develop// 普通合并 可以看到记录
git branch -d [branch-name] // 删除分支
git push origin --delete [branch-name] // 删除远程分支
解决冲突:
git status // 查看状态 显示有变更的文件
git log // 显示当前分支的版本历史
git diff // 显示暂存区和工作区的差异
用工具解决冲突
变基(rebase)
变基(rebase).png
如果提交存在于你的仓库之外,而别人可能基于这些提交进行开发,那么不要执行变基。
git rebase -i
将本地的多次提交合并为一个,以简化提交历史
git rebase master
将master
最新的分支同步到本地
git merge
操作合并分支会让两个分支的每一次提交都按照提交
时间(并不是push
时间)排序,并且会将两个分支的最新一次commit
点进行合并成一个新的commit
,最终的分支树呈现非整条线性直线
的形式
git cherry-pick
将某次提交合并
到某个指定分支上:
假如我们现在在dev(三次提交A,B,C)分支上,首先需要切换到目标分支release001上:
`git checkout release001` //切换分支
`git pull` //拉取最新内容
然后开始合并A记录到release001分支上
`git cherry-pick A` //关键命令
`git pull`
`git push`
然后,B和C提交方式相同。
`cherry-pick` 就是把dev上的提交A这些变动,复制过来在`release001`分支上再来一遍,然后pull,push
参考:https://git-scm.com/book/zh/v2/Git-%E5%88%86%E6%94%AF-%E5%8F%98%E5%9F%BA
网友评论