工作区:电脑上看到的目录
版本库:.git是版本库,里面存放了暂存区
多人协作的工作模式:
试图git push origin branch-name推送自己的修改
-->推送失败(远程分支比本地更新早)
-->需要git pull试图合并
-->合并有冲突,解决冲突,再本地提交
-->再git push origin branch-name推送
github使用总结:
工作区:电脑上看到的目录
版本库:.git是版本库,里面存放了暂存区
多人协作的工作模式:
试图git push origin branch-name推送自己的修改
-->推送失败(远程分支比本地更新早)
-->需要git pull试图合并
-->合并有冲突,解决冲突,再本地提交
-->再git push origin branch-name推送
0.虚拟机中安装git
sudo apt-get install git
1.查看信息
git config --list
git config user.name
git config user.password
git config user.email
2.设置信息
git config --global user.name "your name"
git config --global user.email "your email"
git config --global user.password "your password"
3.初始化版本库
git init
4.从GitHub上拉取代码
<1>克隆GitHub仓库
git clone <仓库地址>
git clone -b <branch-name> <仓库地址>
<2>设置远程仓库
git remote add origin <仓库地址>
<3>推送代码
git add <file>
git commit -m "modify information"
git push -u origin main //第一次,需要-u把本地分支、远程分支关联起来
git push origin main //之后就可以正常推送了
5.版本控制
<1>查看提交历史记录
git log //查看当前版本及之前的历史版本信息
git reflog //回退版本后,还能查看到所有历史版本
git log --pretty=oneline //输出简单历史记录
<2>查看是否还有文件未提交
git status
<3>查看文件改了什么东西
git diff <file>
<4>将文件添加到版本库
git add <file> //将文件添加到暂存区
git commit -m "modify information" //将暂存区所有内容提交到当前分支上
<5>版本回退
git reset --hard HEAD^ //回退到上一个版本号
git reset --hard HEAD^ //回退到上上个版本号
git reset --hard 版本号 //回退到指定版本号
<6>丢弃工作区的修改
git checkout -- <file> //--必须要有,否则会变成创建分支
<7>删除文件
git rm <file>
git checkout -- <file> //删错了,恢复文件
6.管理分支
<1>创建并切换分支
git branch <name> //创建分支
git checkout <name> //切换分支
git checkout -b <name> //创建+切换分支 -b
<2>查看分支
git branch
<3>合并分支
先切至主分支,在主分支上合并dev分支内容
git branch main
git merge <name> //合并指定分支到当前分支上
git branch -d <name> //合并后删除dev分支
<4>分支管理策略
通常合并时,是Fast forward模式,删除分支,会丢掉分支信息
可以用-no-ff来禁用Fast forward模式
即:
git merge -no-ff -m "merge with no-ff" dev
之后再删除dev分支,还能找到分支信息
<5>bug分支
git stash //隐藏当前工作现场
git checkout -b issue-404 //创建临时分支
...修复bug
git checkout main //切回主分支
git merge -no-ff -m "merge bug fix 404" issue-404 //将修改合并到主分支
git branch -d issue-404 //在主分支上删除临时分支
git checkout dev //再切回dev分支干活
git stash apply //恢复工作现场 \
等于git stash pop //恢复现场并删除stash内容
git stash drop //删除stash内容 /
7.解决冲突
git merge fenzhi
-->merge conflict in readme.txt //产生冲突
git status //查看状态
cat readme.txt
<<<<<<< HEAD //主分支修改
1111111
=======
2222222
>>>>>>> fenzhi //fenzhi上的修改
修改后保存即可
8.多人协作
git remote //查看远程库信息
git remote -v //查看远程库详细信息
(fetch) 抓取
(push) 推送
推送分支:
git push origin main //主分支需要和远程同步
git push origin dev //其他分支修改后合并到主分支上,再推送远程
9.远程仓库
<1>先注册github账号
<2>创建SSH Key密钥
ssh-keygen -t rsa –C “youremail@example.com”
cd ~,当前目录下有.ssh文件夹,id_rsa私钥,不能泄露,id_rsa.pub是公钥,可以告诉别人
<3>登录GitHub-->setting-->SSH and GPG keys-->添加公钥
<4>之后就可以正常的使用了
10.补丁patch
<1>生成patch
<2>应用patch
参考:
Ubuntu下Git使用教程:从入门到实践_ubuntu git-CSDN博客
Git使用教程:最详细、最傻瓜、最浅显、真正手把手教!-CSDN博客
Git patch的使用方法和场景_git 打patch-CSDN博客
Generating a new SSH key and adding it to the ssh-agent - GitHub Docs