在github建立自己的代码仓库

直接给出操作步骤,大致的思路如下:

1、新建仓库

2、git clone到本地进行初始化

3、发起第一次提交

4、拉取特性分支并完成开发

5、特性分支合入主分支后清理

下面话不多说,新手学习记录一下操作过程,以后就慢慢积攒自己的代码吧~

1、新建仓库

2、git clone到本地进行初始化

git clone到本地以后先进行初始化,并创建第一个readme文件

​
wjj@DESKTOP-NH0CO1M MINGW64 /e/Codes/

$ git clone GitHub - JiN-tele/goTest: first test of code reposity

wjj@DESKTOP-NH0CO1M MINGW64 /e/Codes/goTest (main)
$ git init
Reinitialized existing Git repository in E:/Codes/goTest/.git/

wjj@DESKTOP-NH0CO1M MINGW64 /e/Codes/goTest (main)
$ ls

wjj@DESKTOP-NH0CO1M MINGW64 /e/Codes/goTest (main)
$ touch README.md

wjj@DESKTOP-NH0CO1M MINGW64 /e/Codes/goTest (main)
$ ls
README.md

wjj@DESKTOP-NH0CO1M MINGW64 /e/Codes/goTest (main)
$ vi README.md

​

3、发起第一次提交

wjj@DESKTOP-NH0CO1M MINGW64 /e/Codes/goTest (main)
$ git add README.md
warning: LF will be replaced by CRLF in README.md.
The file will have its original line endings in your working directory

wjj@DESKTOP-NH0CO1M MINGW64 /e/Codes/goTest (main)
$ git status
On branch main

No commits yet

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)
        new file:   README.md


wjj@DESKTOP-NH0CO1M MINGW64 /e/Codes/goTest (main)
$ git commit -m "first commit"
[main (root-commit) 7c9f487] first commit
 1 file changed, 1 insertion(+)
 create mode 100644 README.md

// 这里新建主分支,并将本地的提交和分支一并推送到远端,推送了才发现可以省略推送步骤。。。
wjj@DESKTOP-NH0CO1M MINGW64 /e/Codes/goTest (main)
$ git branch -M main

wjj@DESKTOP-NH0CO1M MINGW64 /e/Codes/goTest (main)
$ git remote add origin https://github.com/JiN-tele/goTest.git
error: remote origin already exists.

wjj@DESKTOP-NH0CO1M MINGW64 /e/Codes/goTest (main)
$ git push -u origin master
error: src refspec master does not match any
error: failed to push some refs to 'https://github.com/JiN-tele/goTest.git'

wjj@DESKTOP-NH0CO1M MINGW64 /e/Codes/goTest (main)
$ git status
On branch main
Your branch is based on 'origin/main', but the upstream is gone.
  (use "git branch --unset-upstream" to fixup)

nothing to commit, working tree clean

wjj@DESKTOP-NH0CO1M MINGW64 /e/Codes/goTest (main)
$ git log
commit 7c9f487dd6941963df542dd15c86b9c74cf83a2c (HEAD -> main)
Author: wangjunjie <hj1808408@live.com>
Date:   Fri Nov 10 21:07:01 2023 +0800

    first commit

// 继续提交测试代码
wjj@DESKTOP-NH0CO1M MINGW64 /e/Codes/goTest (main)
$ git status
On branch main
Your branch is based on 'origin/main', but the upstream is gone.
  (use "git branch --unset-upstream" to fixup)

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        06_uttest/

nothing added to commit but untracked files present (use "git add" to track)

wjj@DESKTOP-NH0CO1M MINGW64 /e/Codes/goTest (main)
$ git add .

wjj@DESKTOP-NH0CO1M MINGW64 /e/Codes/goTest (main)
$ git status
On branch main
Your branch is based on 'origin/main', but the upstream is gone.
  (use "git branch --unset-upstream" to fixup)

Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        new file:   06_uttest/struct_test.go


wjj@DESKTOP-NH0CO1M MINGW64 /e/Codes/goTest (main)
$ git commit -m "add the uttest example"
[main 952e6fb] add the uttest example
 1 file changed, 90 insertions(+)
 create mode 100644 06_uttest/struct_test.go

// 将本地的提交推送到远端
wjj@DESKTOP-NH0CO1M MINGW64 /e/Codes/goTest (main)
$ git push -u origin main
Enumerating objects: 7, done.
Counting objects: 100% (7/7), done.
Delta compression using up to 12 threads
Compressing objects: 100% (4/4), done.
Writing objects: 100% (7/7), 1.35 KiB | 1.35 MiB/s, done.
Total 7 (delta 0), reused 0 (delta 0), pack-reused 0
To https://github.com/JiN-tele/goTest.git
 * [new branch]      main -> main
branch 'main' set up to track 'origin/main'.


wjj@DESKTOP-NH0CO1M MINGW64 /e/Codes/goTest (main)
$ git l1
* 952e6fb - (HEAD -> main, origin/main) add the uttest example (2023-11-10 21:12:28 +0800) <wangjunjie>
* 7c9f487 - first commit (2023-11-10 21:07:01 +0800) <wangjunjie>

4、拉取特性分支并完成开发

// 新建1个特性分支叫做feature/23.11.10
wjj@DESKTOP-NH0CO1M MINGW64 /e/Codes/goTest (main)
$ git branch feature/23.11.10

wjj@DESKTOP-NH0CO1M MINGW64 /e/Codes/goTest (main)
$ git branch -l
  feature/23.11.10
* main

wjj@DESKTOP-NH0CO1M MINGW64 /e/Codes/goTest (main)
$ git checkout feature/23.11.10
Switched to branch 'feature/23.11.10'

// 这里可以看到本地多了1个特性分支,但远端仍只有1个主分支
wjj@DESKTOP-NH0CO1M MINGW64 /e/Codes/goTest (feature/23.11.10)
$ git branch -l
* feature/23.11.10
  main

wjj@DESKTOP-NH0CO1M MINGW64 /e/Codes/goTest (feature/23.11.10)
$ git branch -l --remote
  origin/main


wjj@DESKTOP-NH0CO1M MINGW64 /e/Codes/goTest (feature/23.11.10)
$ ls
06_uttest/  README.md

wjj@DESKTOP-NH0CO1M MINGW64 /e/Codes/goTest (feature/23.11.10)
$ cd 06_uttest/

wjj@DESKTOP-NH0CO1M MINGW64 /e/Codes/goTest/06_uttest (feature/23.11.10)
$ ls
struct_test.go

wjj@DESKTOP-NH0CO1M MINGW64 /e/Codes/goTest/06_uttest (feature/23.11.10)
$ vi struct_test.go

wjj@DESKTOP-NH0CO1M MINGW64 /e/Codes/goTest/06_uttest (feature/23.11.10)
$ git status
On branch feature/23.11.10
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        modified:   struct_test.go

no changes added to commit (use "git add" and/or "git commit -a")

wjj@DESKTOP-NH0CO1M MINGW64 /e/Codes/goTest/06_uttest (feature/23.11.10)
$ git add .

wjj@DESKTOP-NH0CO1M MINGW64 /e/Codes/goTest/06_uttest (feature/23.11.10)
$ git commit -m  "first change in feature branch"
[feature/23.11.10 553cd74] first change in feature branch
 1 file changed, 2 insertions(+)

// 修改完成后,将特性分支也推送到远端,这里解决了域名解析的问题后推送成功
wjj@DESKTOP-NH0CO1M MINGW64 /e/Codes/goTest/06_uttest (feature/23.11.10)
$ git push origin feature/23.11.10
fatal: unable to access 'https://github.com/JiN-tele/goTest.git/': OpenSSL SSL_read: Connection was reset, errno 10054

wjj@DESKTOP-NH0CO1M MINGW64 /e/Codes/goTest/06_uttest (feature/23.11.10)
$ git push origin feature/23.11.10
Enumerating objects: 7, done.
Counting objects: 100% (7/7), done.
Delta compression using up to 12 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (4/4), 391 bytes | 391.00 KiB/s, done.
Total 4 (delta 1), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (1/1), completed with 1 local object.
remote:
remote: Create a pull request for 'feature/23.11.10' on GitHub by visiting:
remote:      https://github.com/JiN-tele/goTest/pull/new/feature/23.11.10
remote:
To https://github.com/JiN-tele/goTest.git
 * [new branch]      feature/23.11.10 -> feature/23.11.10

wjj@DESKTOP-NH0CO1M MINGW64 /e/Codes/goTest/06_uttest (feature/23.11.10)
$

wjj@DESKTOP-NH0CO1M MINGW64 /e/Codes/goTest/06_uttest (feature/23.11.10)
$

// 再次查看本地和远端仓库的分支已经同步
wjj@DESKTOP-NH0CO1M MINGW64 /e/Codes/goTest/06_uttest (feature/23.11.10)
$ git branch -l
* feature/23.11.10
  main

wjj@DESKTOP-NH0CO1M MINGW64 /e/Codes/goTest/06_uttest (feature/23.11.10)
$ git branch -l --remote
  origin/feature/23.11.10
  origin/main

5、特性分支合入主分支后清理

// 首先将HEAD指向当前的主分支,由于特性分支已经ahead主分支1次提交,所以要将特性分支的提交也合入主分支
wjj@DESKTOP-NH0CO1M MINGW64 /e/Codes/goTest/06_uttest (feature/23.11.10)
$ git checkout main
Switched to branch 'main'
Your branch is up to date with 'origin/main'.

wjj@DESKTOP-NH0CO1M MINGW64 /e/Codes/goTest/06_uttest (main)
$ git branch
  feature/23.11.10
* main

wjj@DESKTOP-NH0CO1M MINGW64 /e/Codes/goTest/06_uttest (main)
$ git merge feature/23.11.10
Updating 952e6fb..553cd74
Fast-forward
 06_uttest/struct_test.go | 2 ++
 1 file changed, 2 insertions(+)

// merge完成后,能够看到553cd74这一次提交已经在主分支合入,再次推送至主分支后完成特性分支的开发
wjj@DESKTOP-NH0CO1M MINGW64 /e/Codes/goTest/06_uttest (main)
$ git l2
* 553cd74 - (HEAD -> main, origin/feature/23.11.10, feature/23.11.10) first change in feature branch (2023-11-10 21:23:35 +0800) <wangjunjie>
* 952e6fb - (origin/main) add the uttest example (2023-11-10 21:12:28 +0800) <wangjunjie>
* 7c9f487 - first commit (2023-11-10 21:07:01 +0800) <wangjunjie>

wjj@DESKTOP-NH0CO1M MINGW64 /e/Codes/goTest/06_uttest (main)
$ git push origin main
Total 0 (delta 0), reused 0 (delta 0), pack-reused 0
To https://github.com/JiN-tele/goTest.git
   952e6fb..553cd74  main -> main

// 首先在本地删除特性分支,然后删除远端的特性分支
wjj@DESKTOP-NH0CO1M MINGW64 /e/Codes/goTest/06_uttest (main)
$ git branch -d feature/23.11.10
Deleted branch feature/23.11.10 (was 553cd74).

wjj@DESKTOP-NH0CO1M MINGW64 /e/Codes/goTest/06_uttest (main)
$ git branch --remote
  origin/feature/23.11.10
  origin/main

wjj@DESKTOP-NH0CO1M MINGW64 /e/Codes/goTest/06_uttest (main)
$ git push origin --delete feature/23.11.10
To https://github.com/JiN-tele/goTest.git
 - [deleted]         feature/23.11.10

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: GitHub pull request 指在 GitHub 上发起的一种请求,用于将您的更改合并到另一个项目的主干分支中。当您在 GitHub 上的某个项目中进行了修改并准备将其提交给项目维护者时,可以使用 pull request。项目维护者会收到您的请求并对其进行审核,如果批准,则会将更改合并到主干分支中。 ### 回答2: GitHub pull request是一种让开发者为开源项目做出贡献的方式。当一个开发者想要为一个开源项目提交代码,但是不直接拥有项目的权限时,他们就可以通过GitHub pull request来为该项目提交代码。 在GitHub pull request中,开发者可以将他们的代码分支(branch)提交给项目的维护者。这个分支包含了开发者的修改代码。维护者可以查看代码,提出意见或更改(coder review),并将代码合并(merge)到主代码库中。 GitHub pull request从根本上改变了软件开发的方式,使得代码管理和协作更加容易和高效。开发者们可以在GitHub上针对特定的问题、新功能等等提交Pull Request,与其他开发者进行讨论和合作,甚至在被提交到主分支之前就可以帮助维护者发现问题并进行更改。 通过GitHub pull request,开发者可以参与到许多的开源项目中,并且通过社区的力量来进行代码贡献。在这个过程中,他们可以学习到其他开发者的开发技能,同时也可以获得代码贡献的证明和其他项目的奖励。 ### 回答3: GitHub是一个强大而且流行的代码托管和版本控制平台,它允许多人协同开发项目,并允许外部人员对项目进行贡献。而pull request就是其中一个重要的功能。 在GitHub上,用户可以fork(分叉)一个开源项目到自己的账户下,进行修改和改进。然后,他们可以将这些修改请求合并到原始项目中,方法是通过pull request(拉请求)。通过向主项目的维护者发送一个pull request,请求他们合并你的更改,你可以对其他开发者展示你所做的修改,并且可以与整个GitHub社区共享您所做的工作。 pull request不仅仅是展示你所做的工作,它也是开源社区审核的一种重要方式,因为它允许其他开发者来评论你的更改!这些反馈可以来自所有地方:来自主项目维护者、其他贡献者、其他用户,它们可以将代码中的语义错误、功能问题、 bug等等发现。 在发起pull request之前,你应该遵循一些最佳实践。首先,确保你的fork是基于最新的主项目;其次,在你的分支上开发和测试代码,避免提交任意类型的错误代码;最后,严格遵循主项目的一些代码规环(如:文件格式、编码规范等)。这些最佳实践将让主项目的维护者更容易接受你的pull request。 总之, pull request是GitHub系統的一種功能,它使软件开发更加透明、明确、容易跟踪,可以加强开源社区代码的审核和共享,提高团队整体的代码水品和项目开發效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值