关键词排名优化怎么做,免费外链网站seo发布,免费的app软件大全,泰安网站建设制作服务Git 文章目录 Git项目简单克隆通用操作添加和提交回滚分支变基分支优选 远程项目推送认证抓取、拉取和冲突解决 IEDA类软件连接 最近学原理学的快头秃了#xff0c;特此想出点不讲原理的纯操作版#xff0c;不过还是放个图吧
项目简单克隆
git在本人日常中最重要的功能还是…Git 文章目录 Git项目简单克隆通用操作添加和提交回滚分支变基分支优选 远程项目推送认证抓取、拉取和冲突解决 IEDA类软件连接 最近学原理学的快头秃了特此想出点不讲原理的纯操作版不过还是放个图吧
项目简单克隆
git在本人日常中最重要的功能还是下载所以先从下载开始讲起
首先创建一个文件用来存放等会clone下来的项目然后点击GitBash进行命令行操作 之后 在git上找到你中意的项目如图操作复制链接 git clone https://github.com/newbee-ltd/newbee-mall.git之后就会看到他在clone你的项目到本地文件夹当然你也可以直接Download zip然后解压 通用操作
之后讲通用的先配置用户名
git config --global user.name “ ”
git config --global user.email “ ”然后创建本地仓库
git init打开此选项查看隐藏的文件夹 发现 这个目录是一个隐藏目录而当前目录就是我们的工作目录。
创建成功后我们可以查看一下当前的一个状态输入
git status如果已经成功配置为Git本地仓库那么输入后可以看到 添加和提交
接着我们来看看如何使用git来管理我们文档的版本我们创建一个文本文档随便写入一点内容接着查看状态 Untracked files是未追踪文件的意思也就是说如果一个文件处于未追踪状态那么git不会记录它的变化始终将其当做一个新创建的文件这里我们将其添加到暂存区那么它会自动变为被追踪状态
git add hello.txt #也可以 add . 一次性添加目录下所有的
再次查看当前状态现在文件名称的颜色变成了绿色并且是处于Changes to be committed下面因此我们的hello.txt现在已经被添加到暂存区了。
接着我们来尝试将其提交到Git本地仓库中注意需要输入提交的描述以便后续查看比如你这次提交修改了或是新增了哪些内容
git commit -m Hello World接着我们可以查看我们的提交记录
git log
git log --graph我们还可以查看最近一次变更的详细内容
git show [也可以加上commit ID查看指定的提交记录]接着我们可以尝试修改一下我们的文本文档由于当前文件已经是被追踪状态那么git会去跟踪它的变化如果说文件发生了修改那么我们再次查看状态会得到下面的结果 也就是说现在此文件是处于已修改状态我们如果修改好了就可以提交我们的新版本到本地仓库中
git add .
git commit -m Modify Text接着我们来查询一下提交记录可以看到一共有两次提交记录。 我们可以创建一个.gitignore文件来确定一个文件忽略列表如果忽略列表中的文件存在且不是被追踪状态那么git不会对其进行任何检查
回滚
当我们想要回退到过去的版本时就可以执行回滚操作执行后可以将工作空间的内容恢复到指定提交的状态
git reset --hard commitID执行后会直接重置为那个时候的状态。再次查看提交日志我们发现之后的日志全部消失了。
那么要是现在我又想回去呢我们可以通过查看所有分支的所有操作记录
git reflog这样就能找到之前的commitID再次重置即可。
分支
分支就像我们树上的一个树枝一样它们可能一开始的时候是同一根树枝但是长着长着就开始分道扬镳了这就是分支。我们的代码也是这样可能一开始写基础功能的时候使用的是单个分支但是某一天我们希望基于这些基础的功能把我们的项目做成两个不同方向的项目比如一个方向做Web网站另一个方向做游戏服务端。
因此我们可以在一个主干上分出N个分支分别对多个分支的代码进行维护。
创建分支 我们可以通过以下命令来查看当前仓库中存在的分支
git branch我们发现默认情况下是有一个master分支的并且我们使用的也是master分支一般情况下master分支都是正式版本的更新而其他分支一般是开发中才频繁更新的。我们接着来基于当前分支创建一个新的分支
git branch test删除分支
git branch -d test1现在我们修改一下文件提交再查看一下提交日志
git commit -a -m branch master commit通过添加-a来自动将未放入暂存区的已修改文件放入暂存区并执行提交操作。查看日志我们发现现在我们的提交只生效于master分支而新创建的分支并没有发生修改。
将分支切换到另一个分支
git checkout test我们会发现文件变成了此分支创建的时的状态也就是说在不同分支下我们的文件内容是相互隔离的。
我们现在再来提交一次变更会发现它只生效在yyds分支上。我们可以看看当前的分支状态
git log --all --graph合并分支 我们也可以将两个分支更新的内容最终合并到同一个分支上我们先切换回主分支
git checkout test1接着使用分支合并命令
git merge test会得到如下提示 在合并过程中产生了冲突因为两个分支都对hello.txt文件进行了修改那么现在要合并在一起到底保留谁的hello文件呢
我们可以查看一下是哪里发生了冲突
git diff因此现在我们将master分支的版本回退到修改hello.txt之前或是直接修改为最新版本的内容这样就不会有冲突了接着再执行一次合并操作现在两个分支成功合并为同一个分支。
变基分支
除了直接合并分支以外我们还可以进行变基操作它跟合并不同合并是分支回到主干的过程而变基是直接修改分支开始的位置比如我们希望将yyds变基到master上那么yyds会将分支起点移动到master最后一次提交位置
git rebase master变基后yyds分支相当于同步了此前master分支的全部提交。
优选
我们还可以选择其将他分支上的提交作用于当前分支上这种操作称为cherrypick
git cherry-pick commit id:单独合并一个提交这里我们在master分支上创建一个新的文件提交此次更新接着通过cherry-pick的方式将此次更新作用于test分支上。
远程项目推送
认证
首先我们需要一个认证
ssh-keygen -t rsa
cat ~/.ssh/github.pub #需要替换打开所在目录复制 .pub文件中的所有内容之后添加ssh key git commit -a -m Modify files
git log --all --oneline --graph
git push origin master
git log --all --oneline --graph推送成功 主页也看到了 也可以远端绑定分支
git push --set-upstream origin master:master
git push origin抓取、拉取和冲突解决
如果出现多个本地仓库对应一个远程仓库的情况下比如一个团队里面N个人都在使用同一个远程仓库但是他们各自只负责编写和推送自己业务部分的代码也就是我们常说的协同工作那么这个时候我们就需要协调。 如果出现进度不一样这时就需要进行pull操作获取远程仓库中最新的提交
git fetch 远程仓库 #抓取只获取但不合并远端分支后面需要我们手动合并才能提交
git pull 远程仓库 #拉取获取合并之后可能会出现冲突例如
To https://github.com/xx/xxx.git! [rejected] master - master (fetch first)
error: failed to push some refs to https://github.com/xx/xxx.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.一旦一个本地仓库推送了代码那么另一个本地仓库的推送会被拒绝原因是当前文件已经被其他的推送给修改了我们这边相当于是另一个版本和之前两个分支合并一样产生了冲突因此我们只能去解决冲突问题。
如果远程仓库中的提交和本地仓库中的提交没有去编写同一个文件那么就可以直接拉取
git pull 远程仓库拉取后会自动进行合并合并完成之后我们再提交即可。
但是如果两次提交都修改了同一个文件那么就会遇到和多分支合并一样的情况在合并时会产生冲突这时就需要我们自己去解决冲突了。
IEDA类软件连接
以下使用GoLand作为范例IDEA也大差不差 之后登陆账户 之后就可以提交了命令都大差不差 操作到这里就结束了有兴趣的可以去了解了解原理