Gitee同步流程及常用指令

一、同步电脑本地文件夹到gitee的过程

1、打开Gitee,注册一个账号,注册完登录,然后在右上角点击【+】创建一个仓库,设置仓库名,设置为私有,点击创建(只执行一次)。
image

2、打开Git Bash。(cmd也可以完成相关的命令,区别在于底层操作系统不同,bash使用Unix,有ls等指令;而cmd是DOS。)
输入以下命令生成密钥(只执行一次):

$ ssh-keygen -t rsa -C "【你的邮箱】"             #生成密钥ssh

image

3、基本设置(只执行一次)

$ git config --global user.name "【你的用户名】"  #全局设置,声明操作的用户名字,可diy,会出现在提交记录中
$ git config --global user.email "【你的邮箱】"   #全局设置,声明操作的用户邮箱,会出现在提交记录中
# 在gitee添加SSH公钥后,输入以下指令查看是否添加成功
$ ssh -T git@gitee.com  # 查看是否添加ssh成功
$ git remote -v   # 查看链接的远程库

4、本地文件夹初始化(只执行一次)

#以下指令只初始化一次
$ cd d:\\gitee  #切换到要上传的文件夹目录下
$ git init      #初始化仓库  会在当前路径下生成.git文件夹(默认为隐藏,设置成为显示)
$ git remote add origin https://gitee.com/gitee0901/tm_work2.git #加载远程仓库

5、同步文件到gitee

#上传文件到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为分支名

6、远程仓库到本地
输入命令 git pull origin master 命令可以将远程仓库的内容加载到本地的文件夹中
拉取远程文件常用的有两种方法:git pull 和git fetch

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合并到当前分支

冲突现象:
1、远程版本比本地版本更新,可以直接用git pull更新本地;
2、本地版本比远程版本更新,可以直接用git push更新远程;
3、当本地库和远程库的文件冲突时,最后使用git fetch,然后自行对比解决冲突,可以在Git Bash分别查看两个文件,对比差异,或者使用第三方可视化工具(如vscode)查看;如果直接git pull可能会出现一些逻辑不恰的合并

7、克隆远程的仓库,暂未使用:

$ git clone https://gitee.com/xin-data/my_work.git

一、初始化


git config --global user.name "username"

设置git用户名

git config --global user.email "email"

设置git邮箱号

git init

通过命令 git init 把当前目录变成git管理的本地仓库

git add filename

把文件存到暂存区

git commit -m "note"

把文件提交到本地仓库


二、常用操作


git status

查看当前库的git状态

git diff filename

查看文件改动状态

git log

查看git操作日志

git reset --hard HEAD~N

回退git版本到第N个版本前

git reflog

可查看git每步操作的版本号(查看完成按Q可退出查看)

git reset --hard verNum

git到指定版本(根据版本号)

git checkout -- filename 

丢弃工作区的修改。例如修改了文档还没有git add。add后无法撤销修改。

rm filename

删除文件,删除后git checkout -- filename可以撤销删除,恢复文件。


三、远程仓库的绑定使用


ssh-keygen -t rsa -C "email"

创建SSH私人密钥和公共密钥

git remote add origion https://github.com/aaa/PC1.git

利用上一步的PC的公共密钥
先在github个人账户上New SSH Key;
再建立新仓库New repository,得到仓库的http地址后,
将github库与本地PC绑定,需在git输入github的账号和密码。

git push -u origion master

把当前分支master推送到远程(github仓库),首次加-u。

git push origion master

本地与远程仓库绑定后,修改本地后,利用该指令同步到远程仓库。

git clone https://github.com/aaa/PC2.git

从远程仓库克隆到本地。


四、分支操作


git branch

查看git所有分支。

git checkout -b 分支名 

创建并切换到这个分支。相当于git branch bran1 和 git checkout bran1这两条指令。

git merge branch

现在我们想要把branch分支上增加的内容合并到当前分支,可以在当前分支(任何分支皆可)上使用该命令。

git branch -d bran2

删除某个分支。

git pull

获取远程分支上的最新内容


五、常用流程

使用Git提交文件到本地库和远程库:
1:使用 git add filename把文件添加到暂存区。
2:使用git commit -m "note"提交更改,实际上就是把暂存区的所有内容提交到当前master分支上。
3:使用git push origion master:把本地master分支的最新修改交托给GitHub的origin分支,完成这一步才真正意义上拥有了分布式版本库。(集中式、分布式)

分支管理策略:
通常我们合并分支的时候,Git一般是用Fast forward模式,这种模式下,删除分支之后,会丢掉分支信息,现在我们来使用--no--ff来禁用Fast forward模式。
1:创建一个dev分支。git checkout -b dev
2:修改README.md内容。
3:添加到暂存区、工作区。git add README.md \ git commit -m "change1"
4:切换回bran1分支。git checkout bran1
5:合并dev分支,使用命令:git merge --no--ff -m "note" dev
6:删除dev之后我们发现在最后的log中还有dev的操作。git branch -d dev
7:查看历史记录。git log
8:分支策略:master主分支应该是非常稳定的,也是用来发布的新版本,一般情况下干活都不在master分支上干,都是在新建的分支上,干完之后需要发布,或者说新建分支代码稳定之后可以合并到主分支master上。

bug管理策略:
1:隐藏当前分支下的工作状态 git stash
2:查看git状态是否干净。git status
3:切换到bug所在的分支 。gitcheckout branch
4:在bug分支上新建分支。git checkout -b branbug
5:修改bug代码
6:提交修改后的文件。git add filename\ git commit -m "fix bug xxx"
7:切换到bug所在的分支。git checkout branch
8:合并刚才的修复。git merge --no--off -m "note" branchbug
9:删除修复bug的临时分支。git branch -d branchbug
10:切换到第一步正在工作状态的分支。git checkout bran1
11:查看隐藏的工作现场。git stash list
12:恢复的方式有两种:
a、git stash apply,这种恢复方式恢复后stash内容并不删除,需要使用git stash drop来删除。
b、另一种方式是使用git stash pop,恢复的同时把stash内容也删除了。

多人合作:(本地master分支) 对应 (远程origin分支)
1:查看远程信息 git remote
2:查看远程库详细信息 git remote -v
3:拉取最新origion到当前分支 git pull
4:修改内容
5:推送自己的更改到origion :git push origion branch-name


六、note

如果我们改了本地文件,没有commit到某个分支A,那么在分支A下,cat filename是看不到本地改动 的。且在branch1下的commit,在branch2上cat filename也看不到。

一般情况下master分支是主分支,因此要时时刻刻与远程同步;一些修复的bug分支是不需要推送到远程的,只要先在本地合并到主分支上,然后把主分支master推送到远程去即可。


七、简易的命令行入门教程:

https://gitee.com/oschina/git-osc/wikis/帮助
简易的命令行入门教程:
Git 全局设置:

git config --global user.name "gitee0901"
git config --global user.email "944602965@qq.com"
创建 git 仓库:

mkdir tm_work2
cd tm_work2
git init
touch README.md
git add README.md
git commit -m "first commit"
git remote add origin https://gitee.com/gitee0901/tm_work2.git
git push -u origin "master"
已有仓库?

cd existing_git_repo
git remote add origin https://gitee.com/gitee0901/tm_work2.git
git push -u origin "master"

注意

如果新建远程仓库后,先在仓库新建、更改了文件,本地再首次push会报错Updates were rejected because the tip of your current branch is behindhint:。
解决方法:先拉取remote最新版到本地,git pull origin master --allow-unrelated-histories,再重新push。

posted @ 2022-03-02 09:26  solonj  阅读(174)  评论(0编辑  收藏  举报