Gitee同步流程及常用指令
<h1 id="一同步电脑本地文件夹到gitee的过程">一、同步电脑本地文件夹到gitee的过程</h1><p>1、打开Gitee,注册一个账号,注册完登录,然后在右上角点击【+】创建一个仓库,设置仓库名,设置为私有,点击创建(只执行一次)。<br>
<img src="https://img2023.cnblogs.com/blog/2248628/202307/2248628-20230706100424131-1435979592.png"></p>
<p>2、打开Git Bash。(cmd也可以完成相关的命令,区别在于底层操作系统不同,bash使用Unix,有ls等指令;而cmd是DOS。)<br>
输入以下命令生成密钥(只执行一次):</p>
<pre><code>$ ssh-keygen -t rsa -C "【你的邮箱】" #生成密钥ssh
</code></pre>
<p><img src="https://img2023.cnblogs.com/blog/2248628/202307/2248628-20230706100900813-933399187.png"></p>
<p>3、基本设置(只执行一次)</p>
<pre><code>$ git config --global user.name "【你的用户名】"#全局设置,声明操作的用户名字,可diy,会出现在提交记录中
$ git config --global user.email "【你的邮箱】" #全局设置,声明操作的用户邮箱,会出现在提交记录中
# 在gitee添加SSH公钥后,输入以下指令查看是否添加成功
$ ssh -T git@gitee.com# 查看是否添加ssh成功
$ git remote -v # 查看链接的远程库
</code></pre>
<p>4、本地文件夹初始化(只执行一次)</p>
<pre><code>#以下指令只初始化一次
$ cd d:\\gitee#切换到要上传的文件夹目录下
$ git init #初始化仓库会在当前路径下生成.git文件夹(默认为隐藏,设置成为显示)
$ git remote add origin https://gitee.com/gitee0901/tm_work2.git #加载远程仓库
</code></pre>
<p>5、同步文件到gitee</p>
<pre><code>#上传文件到gitee
$ git add . #将本地文件提交到缓存区(这里的.表示当前文件夹中的所有内容)
$ git add * #添加所有文件,暂未使用
$ git add --all #添加所有文件,暂未使用
$ git commit -m "commit 0606" #将暂存区文件提交到本地版本库
$ git push -u origin master#上传到gitee,首次加-u,之后可以用git push origin master ,master为分支名
</code></pre>
<p>6、远程仓库到本地<br>
输入命令 <code> git pull origin master</code>命令可以将远程仓库的内容加载到本地的文件夹中<br>
拉取远程文件常用的有两种方法:git pull <remote>和git fetch <remote> <branch>。</branch></remote></remote></p>
<pre><code>1、git pull <remote>:从远程库<remote>抓取所有分⽀并合并到本地仓库。
2、git fetch <remote> <branch>:从远程库<remote>抓取指定分支到本地仓库。去掉将抓取远程所有分⽀。
3、git pull <remote>=git fetch <remote>+git merge <remote>
$ git pull origin#拉取远程库文件并合并到本地仓库
#或者
$ git fetch origin #拉取远程库文件
$ git merge origin #合并到本地仓库,将origin合并到当前分支
</code></pre>
<p>冲突现象:<br>
1、远程版本比本地版本更新,可以直接用git pull更新本地;<br>
2、本地版本比远程版本更新,可以直接用git push更新远程;<br>
3、当本地库和远程库的文件冲突时,最后使用git fetch,然后自行对比解决冲突,可以在Git Bash分别查看两个文件,对比差异,或者使用第三方可视化工具(如vscode)查看;如果直接git pull可能会出现一些逻辑不恰的合并</p>
<p>7、克隆远程的仓库,暂未使用:</p>
<pre><code>$ git clone https://gitee.com/xin-data/my_work.git
</code></pre>
<hr>
<p><strong>一、初始化</strong></p>
<hr>
<pre><code class="language-c">git config --global user.name "username"
</code></pre>
<p>设置git用户名</p>
<pre><code class="language-c">git config --global user.email "email"
</code></pre>
<p>设置git邮箱号</p>
<pre><code class="language-c">git init
</code></pre>
<p>通过命令 git init 把当前目录变成git管理的本地仓库</p>
<pre><code class="language-c">git add filename
</code></pre>
<p>把文件存到暂存区</p>
<pre><code class="language-c">git commit -m "note"
</code></pre>
<p>把文件提交到本地仓库</p>
<hr>
<p><strong>二、常用操作</strong></p>
<hr>
<pre><code class="language-c">git status
</code></pre>
<p>查看当前库的git状态</p>
<pre><code class="language-c">git diff filename
</code></pre>
<p>查看文件改动状态</p>
<pre><code class="language-c">git log
</code></pre>
<p>查看git操作日志</p>
<pre><code class="language-c">git reset --hard HEAD~N
</code></pre>
<p>回退git版本到第N个版本前</p>
<pre><code class="language-c">git reflog
</code></pre>
<p>可查看git每步操作的版本号(查看完成按Q可退出查看)</p>
<pre><code class="language-c">git reset --hard verNum
</code></pre>
<p>git到指定版本(根据版本号)</p>
<pre><code class="language-c">git checkout -- filename
</code></pre>
<p>丢弃工作区的修改。例如修改了文档还没有git add。add后无法撤销修改。</p>
<pre><code class="language-c">rm filename
</code></pre>
<p>删除文件,删除后git checkout -- filename可以撤销删除,恢复文件。</p>
<hr>
<p><strong>三、远程仓库的绑定使用</strong></p>
<hr>
<pre><code class="language-c">ssh-keygen -t rsa -C "email"
</code></pre>
<p>创建SSH私人密钥和公共密钥</p>
<pre><code class="language-c">git remote add origion https://github.com/aaa/PC1.git
</code></pre>
<p>利用上一步的<strong>PC的公共密钥</strong><br>
先在github个人账户上New SSH Key;<br>
再建立新仓库New repository,得到<strong>仓库的http地址</strong>后,<br>
将github库与本地PC<strong>绑定</strong>,需在git输入github的账号和密码。</p>
<pre><code class="language-c">git push -u origion master
</code></pre>
<p>把当前分支master推送到远程(github仓库),首次加-u。</p>
<pre><code class="language-c">git push origion master
</code></pre>
<p>本地与远程仓库绑定后,修改本地后,利用该指令同步到远程仓库。</p>
<pre><code class="language-c">git clone https://github.com/aaa/PC2.git
</code></pre>
<p>从远程仓库克隆到本地。</p>
<hr>
<p><strong>四、分支操作</strong></p>
<hr>
<pre><code class="language-c">git branch
</code></pre>
<p>查看git所有分支。</p>
<pre><code class="language-c">git checkout -b 分支名
</code></pre>
<p>创建并切换到这个分支。相当于git branch bran1 和 git checkout bran1这两条指令。</p>
<pre><code class="language-c">git merge branch
</code></pre>
<p>现在我们想要把branch分支上增加的内容合并到当前分支,可以在当前分支(任何分支皆可)上使用该命令。</p>
<pre><code class="language-c">git branch -d bran2
</code></pre>
<p>删除某个分支。</p>
<pre><code class="language-c">git pull
</code></pre>
<p>获取远程分支上的最新内容</p>
<hr>
<p><strong>五、常用流程</strong></p>
<p>使用Git提交文件到本地库和远程库:<br>
1:使用 git add filename把文件添加到暂存区。<br>
2:使用git commit -m "note"提交更改,实际上就是把暂存区的所有内容提交到当前master分支上。<br>
3:使用git push origion master:把本地master分支的最新修改交托给GitHub的origin分支,完成这一步才真正意义上拥有了分布式版本库。(集中式、分布式)</p>
<p>分支管理策略:<br>
通常我们合并分支的时候,Git一般是用Fast forward模式,这种模式下,删除分支之后,会丢掉分支信息,现在我们来使用--no--ff来禁用Fast forward模式。<br>
1:创建一个dev分支。git checkout -b dev<br>
2:修改README.md内容。<br>
3:添加到暂存区、工作区。git add README.md \ git commit -m "change1"<br>
4:切换回bran1分支。git checkout bran1<br>
5:合并dev分支,使用命令:git merge --no--ff -m "note" dev<br>
6:删除dev之后我们发现在最后的log中还有dev的操作。git branch -d dev<br>
7:查看历史记录。git log<br>
8:分支策略:master主分支应该是非常稳定的,也是用来发布的新版本,一般情况下干活都不在master分支上干,都是在新建的分支上,干完之后需要发布,或者说新建分支代码稳定之后可以合并到主分支master上。</p>
<p>bug管理策略:<br>
1:隐藏当前分支下的工作状态 git stash<br>
2:查看git状态是否干净。git status<br>
3:切换到bug所在的分支 。gitcheckout branch<br>
4:在bug分支上新建分支。git checkout -b branbug<br>
5:修改bug代码<br>
6:提交修改后的文件。git add filename\ git commit -m "fix bug xxx"<br>
7:切换到bug所在的分支。git checkout branch<br>
8:合并刚才的修复。git merge --no--off -m "note"branchbug<br>
9:删除修复bug的临时分支。git branch -d branchbug<br>
10:切换到第一步正在工作状态的分支。git checkout bran1<br>
11:查看隐藏的工作现场。git stash list<br>
12:恢复的方式有两种:<br>
a、git stash apply,这种恢复方式恢复后stash内容并不删除,需要使用git stash drop来删除。<br>
b、另一种方式是使用git stash pop,恢复的同时把stash内容也删除了。</p>
<p>多人合作:(本地master分支) 对应 (远程origin分支)<br>
1:查看远程信息 git remote<br>
2:查看远程库详细信息 git remote -v<br>
3:拉取最新origion到当前分支 git pull<br>
4:修改内容<br>
5:推送自己的更改到origion :git push origion branch-name</p>
<hr>
<p><strong>六、note</strong></p>
<p>如果我们改了本地文件,没有commit到某个分支A,那么在分支A下,cat filename是看不到本地改动 的。且在branch1下的commit,在branch2上cat filename也看不到。</p>
<p>一般情况下master分支是主分支,因此要时时刻刻与远程同步;一些修复的bug分支是不需要推送到远程的,只要先在本地合并到主分支上,然后把主分支master推送到远程去即可。</p>
<hr>
<h1 id="七简易的命令行入门教程">七、简易的命令行入门教程:</h1>
<p>https://gitee.com/oschina/git-osc/wikis/帮助<br>
简易的命令行入门教程:<br>
Git 全局设置:</p>
<p>git config --global user.name "gitee0901"<br>
git config --global user.email "944602965@qq.com"<br>
创建 git 仓库:</p>
<p>mkdir tm_work2<br>
cd tm_work2<br>
git init<br>
touch README.md<br>
git add README.md<br>
git commit -m "first commit"<br>
git remote add origin https://gitee.com/gitee0901/tm_work2.git<br>
git push -u origin "master"<br>
已有仓库?</p>
<p>cd existing_git_repo<br>
git remote add origin https://gitee.com/gitee0901/tm_work2.git<br>
git push -u origin "master"</p>
<h2 id="注意">注意</h2>
<p>如果新建远程仓库后,先在仓库新建、更改了文件,本地再首次push会报错Updates were rejected because the tip of your current branch is behindhint:。<br>
解决方法:先拉取remote最新版到本地,<code>git pull origin master --allow-unrelated-histories</code>,再重新push。</p><br><br>
来源:https://www.cnblogs.com/solo666/p/15953579.html
頁:
[1]