侧边栏壁纸
博主头像
孔子说JAVA博主等级

成功只是一只沦落在鸡窝里的鹰,成功永远属于自信且有毅力的人!

  • 累计撰写 285 篇文章
  • 累计创建 125 个标签
  • 累计收到 4 条评论

目 录CONTENT

文章目录

将本地项目代码同步到Bitbucket、Gitlab、Github

孔子说JAVA
2022-08-31 / 0 评论 / 0 点赞 / 41 阅读 / 2,736 字 / 正在检测是否收录...

Git 是一个分布式版本控制系统,Github和Gitlab都是基于git开发的管理代码的软件,GitHub同时提供付费账户和免费账户。这两种账户都可以创建公开的代码仓库,但是付费账户也可以创建私有的代码仓库。Bitbucket和GitLab均可让您免费存储自己的私有存储库(无限的私有存储库)。Bitbucket、Gitlab、Github都支持Git语法,下面以Bitbucket为例介绍如何将本地代码同步到在线仓库中。

1、Git 工作流

image-1661854652906

  • workspace:工作区
  • staging area:暂存区/缓存区
  • local repository:版本库或本地仓库
  • remote repository:远程仓库

2、创建项目和仓库

2.1 创建项目

登录到bitbucket,首先创建一个项目,该项目下用于存放我们自己的私有仓库(一个项目下可以存放多个仓库)。

image-1661852497625

image-1661852343065

2.2 创建仓库

创建一个仓库,项目名称选择上一步创建好的trunk,仓库名称为fence-hky-data。

image-1661852569942

3、本地项目关联远程仓库

进入本地项目fence-hky-data的根目录,鼠标右键选择 Git Bash Here。注意下图的 .git 文件夹,在没有关联之前是不存在的,其他文件夹上也没有绿色的对勾图标。

image-1661852748745

鼠标右键选择 Git Bash Here 后的弹出窗口如下:

image-1661852962812

第一步:git init (在代码库根目录初始化一个本地git仓库),这时候会出现 .git 文件夹。

git init

image-1661853133847

第二步:git remote add origin [远程仓库地址] (添加远程仓库到本地),这里的 origin 为本地分支名称。

远程仓库地址获取方式:进入仓库,点击上方的克隆按钮会弹出一个对话框,内部就是远程仓库地址。

git remote add origin [远程仓库地址]

image-1661853401638

image-1661853298790

要注意该命令中使用的远程仓库地址不能包括https前面的 git clone 字符。

image-1661853543109

如果执行上述语句后报错:fatal: remote origin already exists.,解决方法如下:

git remote -v

git remote rm origin

# 再次添加远程仓库到本地
git remote add origin [远程仓库地址]

第三步:git pull origin master (拉取远程仓库master分支到本地origin)

使用该命令时,如果远程仓库有文件,会报以下错误:

$ git pull origin master
From https://bitbucket.org/ideakong/fence-hky-data
 * branch            master     -> FETCH_HEAD
fatal: refusing to merge unrelated histories

此时可以在操作命令后面加 --allow-unrelated-histories,完整命令如下:

git pull origin master --allow-unrelated-histories

image-1661854030868

同理:如果你git push时报fatal: refusing to merge unrelated histories,都可以用在操作命令后面加 --allow-unrelated-histories 的方式。

第四步:git add . (添加代码到缓存区)

使用 git add . 命令提交本地文件到暂存区。

git add .

image-1661854301413

第五步:git commit (提交代码到本地仓库中)

使用 git commit -m "注释" 命令将暂存区内容添加到本地仓库中。

image-1661854351091

第六步:git push origin master (提交本地仓库代码到远程分支)

使用 git push 命令提交本地仓库代码到远程分支:

git push --set-upstream origin master

image-1661854551529

如果需要强制推送,执行如下命令:

git push -f --set-upstream origin master

git push -f 这个命令的作用是将自己本地仓库的代码直接推送至仓库,完全以你的提交为准,之前其他人的提交都会被覆盖。有两种情况下适合使用这个命令:

  • 确定需要覆覆盖提交,就像上面的那种情况,在明确部分提交会导致异常时,可以使用新的提交去覆盖。
  • 需要整理历史提交记录时,有时候项目的 Commit Logs 可能比较乱,不能清晰的看出每一次提交的作用,可以使用 rebase 命令来清理历史提交记录。因为改变了历史,所以正常来说是 push不成功的,所以需要使用 force push来解决这个问题。

4、代码 clone 到本地

这种方法是直接 clone 代码,这样不需要再手动关联仓库。

1、本地创建空白文件夹。
2、右键 Git Bash Here 打开控制台。
3、直接 clone 远程仓库的代码。
4、在此项目基础上写新的代码。

5、常用命令

//初始化
git init
//拉取远程master分支上内容
git fetch origin master
//提交本地文件到暂存区
git add .
//查看暂存区状态
git status
//比较暂存区和工作区的差异
git diff
//将暂存区内容添加到本地仓库中
git commit -m"注释"
//提交合并请求
git merge origin/master
//推送到远程分支
git push origin

//查看本地分支
git branch
//查看所有远程分支
git branch -r
//查看所有分支
git branch -a
//创建本地分支
git branch 分支名
//建立本地分支和远程分支的映射关系
git branch --set-upstream-to origin/分支名
//撤销本地分支与远程分支的映射关系
git branch --unset-upstream
//查看本地分支和远程分支的映射关系
git branch -vv
//创建新分支并立即切换到该分支下
git checkout -b 分支名
//删除本地分支
git branch -d 分支名
//删除远程分支
git push origin --delete 分支名
//同步远程分支
git fetch origin --prune
//切换分支
git checkout 分支名
//拉取远程信息(同步远程分支)
git pull
//查看历史提交记录
git log
//查看指定文件的修改记录
git blame 文件名
//打标签
git tag -a 标签名 -m"注释"
//关联远程地址
git remote add origin 远程地址
//解除关联
git remote rm origin
//查看所有远程仓库
git remote -v

//查看Git配置信息
git config -list
//设置用户名和密码(一般只需要设置一次)
git config --global user.name 'name'
git config --global user.email 'email'
0

评论区