1.GitHub功能介绍

1.记录多个版本
2.查看历史操作,可以进行版本回退和前进的控制
3.多端共享代码,自动合并

2.创建仓库&项目的克隆拉去和推送

1.在git网页上创建新的仓库
2. 克隆ssh地址

$ git clone git@github.com:tytgit/AutoTest.git
Cloning into ‘AutoTest’…
warning: You appear to have cloned an empty repository.

3.推送

65155@DESKTOP-R1M1DOQ MINGW64 ~/.ssh/AutoTest (main)
$ git commit -m “2222”
[main (root-commit) 26ad384] 2222
1 file changed, 1 insertion(+)
create mode 100644 test.txt

65155@DESKTOP-R1M1DOQ MINGW64 ~/.ssh/AutoTest (main)
$ git push
Enumerating objects: 3, done.
Counting objects: 100% (3/3), done.
Writing objects: 100% (3/3), 220 bytes | 220.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
To github.com:tytgit/AutoTest.git

  • [new branch] main -> main

4.拉取

git pull

3.项目的分支操作

3.1创建分支

65155@DESKTOP-R1M1DOQ MINGW64 ~/.ssh/AutoTest (main)
$ git branch

  • main

65155@DESKTOP-R1M1DOQ MINGW64 ~/.ssh/AutoTest (main)
$ git branch -a

  • main
    remotes/origin/main

65155@DESKTOP-R1M1DOQ MINGW64 ~/.ssh/AutoTest (main)
$ git checkout -b branch1
Switched to a new branch ‘branch1’

65155@DESKTOP-R1M1DOQ MINGW64 ~/.ssh/AutoTest (branch1)
$ git branch

  • branch1
    main

65155@DESKTOP-R1M1DOQ MINGW64 ~/.ssh/AutoTest (branch1)
$ git branch -a

  • branch1
    main
    remotes/origin/main

65155@DESKTOP-R1M1DOQ MINGW64 ~/.ssh/AutoTest (branch1)
$ vim test.txt

65155@DESKTOP-R1M1DOQ MINGW64 ~/.ssh/AutoTest (branch1)
$ cat test.txt
111111
2 branch1

65155@DESKTOP-R1M1DOQ MINGW64 ~/.ssh/AutoTest (branch1)
$ git add test.txt
warning: in the working copy of ‘test.txt’, LF will be replaced by CRLF the next time Git touches it

65155@DESKTOP-R1M1DOQ MINGW64 ~/.ssh/AutoTest (branch1)
$ git commit -m “提交到分支1”
[branch1 9ba15bc] 提交到分支1
1 file changed, 1 insertion(+)

65155@DESKTOP-R1M1DOQ MINGW64 ~/.ssh/AutoTest (branch1)
$ git push
fatal: The current branch branch1 has no upstream branch.
To push the current branch and set the remote as upstream, use

git push --set-upstream origin branch1

To have this happen automatically for branches without a tracking
upstream, see ‘push.autoSetupRemote’ in ‘git help config’.

65155@DESKTOP-R1M1DOQ MINGW64 ~/.ssh/AutoTest (branch1)
$ git push --set-upstream origin branch1
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Writing objects: 100% (3/3), 284 bytes | 284.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0

remote:
remote: Create a pull request for ‘branch1’ on GitHub by visiting:
remote: https://github.com/tytgit/AutoTest/pull/new/branch1
remote:
To github.com:tytgit/AutoTest.git

  • [new branch] branch1 -> branch1
    branch ‘branch1’ set up to track ‘origin/branch1’.

3.2删除分支

切出当前分支才能删除

65155@DESKTOP-R1M1DOQ MINGW64 ~/.ssh/AutoTest (branch1)
$ git checkout master
error: pathspec ‘master’ did not match any file(s) known to git

65155@DESKTOP-R1M1DOQ MINGW64 ~/.ssh/AutoTest (branch1)
$ git branch

  • branch1
    main

65155@DESKTOP-R1M1DOQ MINGW64 ~/.ssh/AutoTest (branch1)
$ git checkout main
Switched to branch ‘main’
Your branch is up to date with ‘origin/main’.

65155@DESKTOP-R1M1DOQ MINGW64 ~/.ssh/AutoTest (main)
$ git branch -d branch1
warning: deleting branch ‘branch1’ that has been merged to
‘refs/remotes/origin/branch1’, but not yet merged to HEAD.
Deleted branch branch1 (was 9ba15bc).

65155@DESKTOP-R1M1DOQ MINGW64 ~/.ssh/AutoTest (main)
$ git branch

  • main

65155@DESKTOP-R1M1DOQ MINGW64 ~/.ssh/AutoTest (main)
$ git branch -a

  • main
    remotes/origin/branch1
    remotes/origin/main

只是删除了本地的分支,远程的分支没有被删除
想要在远程上删掉分支,需要用另外的删除命令并将命令push到远程上

65155@DESKTOP-R1M1DOQ MINGW64 ~/.ssh/AutoTest (main)
$ git branch -a

  • main
    remotes/origin/branch1
    remotes/origin/main

65155@DESKTOP-R1M1DOQ MINGW64 ~/.ssh/AutoTest (main)
$ git branch -r -d origin/branch1
Deleted remote-tracking branch origin/branch1 (was 9ba15bc).

65155@DESKTOP-R1M1DOQ MINGW64 ~/.ssh/AutoTest (main)
$ git branch -a

  • main
    remotes/origin/main

65155@DESKTOP-R1M1DOQ MINGW64 ~/.ssh/AutoTest (main)
$ git push origin :branch1
To github.com:tytgit/AutoTest.git

  • [deleted] branch1

3.3合并分支

65155@DESKTOP-R1M1DOQ MINGW64 ~/.ssh/AutoTest (mergedemo)
$ vim test.txt

65155@DESKTOP-R1M1DOQ MINGW64 ~/.ssh/AutoTest (mergedemo)
$ cat test.txt
111111
xuyaohebing

65155@DESKTOP-R1M1DOQ MINGW64 ~/.ssh/AutoTest (mergedemo)
$ git add test.txt

65155@DESKTOP-R1M1DOQ MINGW64 ~/.ssh/AutoTest (mergedemo)
$ git commit -m “添加合并内容”
On branch mergedemo
Untracked files:
(use “git add …” to include in what will be committed)
config

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

65155@DESKTOP-R1M1DOQ MINGW64 ~/.ssh/AutoTest (mergedemo)
$ ll
total 1
-rw-r–r-- 1 65155 197609 0 Aug 2 15:29 config
-rw-r–r-- 1 65155 197609 21 Aug 2 15:29 test.txt

65155@DESKTOP-R1M1DOQ MINGW64 ~/.ssh/AutoTest (mergedemo)
$ git add test.txt

65155@DESKTOP-R1M1DOQ MINGW64 ~/.ssh/AutoTest (mergedemo)
$ git commit -m “添加合并内容”
On branch mergedemo
Untracked files:
(use “git add …” to include in what will be committed)
config

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

65155@DESKTOP-R1M1DOQ MINGW64 ~/.ssh/AutoTest (mergedemo)
$ cat test.txt
111111
xuyaohebing

65155@DESKTOP-R1M1DOQ MINGW64 ~/.ssh/AutoTest (mergedemo)
$ git push
fatal: The current branch mergedemo has no upstream branch.
To push the current branch and set the remote as upstream, use

git push --set-upstream origin mergedemo

To have this happen automatically for branches without a tracking
upstream, see ‘push.autoSetupRemote’ in ‘git help config’.

65155@DESKTOP-R1M1DOQ MINGW64 ~/.ssh/AutoTest (mergedemo)
$ git push --set-upstream origin mergedemo

Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Writing objects: 100% (3/3), 311 bytes | 311.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
remote:
remote: Create a pull request for ‘mergedemo’ on GitHub by visiting:
remote: https://github.com/tytgit/AutoTest/pull/new/mergedemo
remote:
To github.com:tytgit/AutoTest.git

  • [new branch] mergedemo -> mergedemo
    branch ‘mergedemo’ set up to track ‘origin/mergedemo’.

65155@DESKTOP-R1M1DOQ MINGW64 ~/.ssh/AutoTest (mergedemo)
$

65155@DESKTOP-R1M1DOQ MINGW64 ~/.ssh/AutoTest (mergedemo)
$ git checkout main
Switched to branch ‘main’
Your branch is up to date with ‘origin/main’.

65155@DESKTOP-R1M1DOQ MINGW64 ~/.ssh/AutoTest (main)
$ cat test.txt
111111
65155@DESKTOP-R1M1DOQ MINGW64 ~/.ssh/AutoTest (main)
$ git merge mergedemo
Updating 26ad384…46f6531
Fast-forward
test.txt | 1 +
1 file changed, 1 insertion(+)

65155@DESKTOP-R1M1DOQ MINGW64 ~/.ssh/AutoTest (main)
$ cat test.txt
111111
xuyaohebing

3.4项目的版本操作

65155@DESKTOP-R1M1DOQ MINGW64 ~/.ssh/AutoTest (mergedemo)
$ cat test.txt
111111
xuyaohebing

65155@DESKTOP-R1M1DOQ MINGW64 ~/.ssh/AutoTest (mergedemo)
$ git push
fatal: The current branch mergedemo has no upstream branch.
To push the current branch and set the remote as upstream, use

git push --set-upstream origin mergedemo

To have this happen automatically for branches without a tracking
upstream, see ‘push.autoSetupRemote’ in ‘git help config’.

65155@DESKTOP-R1M1DOQ MINGW64 ~/.ssh/AutoTest (mergedemo)
$ git push --set-upstream origin mergedemo

objects: 5, done.
Counting objects: 100% (5/5), done.
Writing objects: 100% (3/3), 311 bytes | 311.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
remote:
remote: Create a pull request for ‘mergedemo’ on GitHub by visiting:
remote: https://github.com/tytgit/AutoTest/pull/new/mergedemo
remote:
To github.com:tytgit/AutoTest.git

  • [new branch] mergedemo -> mergedemo
    branch ‘mergedemo’ set up to track ‘origin/mergedemo’.

65155@DESKTOP-R1M1DOQ MINGW64 ~/.ssh/AutoTest (mergedemo)
$

65155@DESKTOP-R1M1DOQ MINGW64 ~/.ssh/AutoTest (mergedemo)
$ git checkout master
error: pathspec ‘master’ did not match any file(s) known to git

65155@DESKTOP-R1M1DOQ MINGW64 ~/.ssh/AutoTest (mergedemo)
$ git checkout main
Switched to branch ‘main’
Your branch is up to date with ‘origin/main’.

65155@DESKTOP-R1M1DOQ MINGW64 ~/.ssh/AutoTest (main)
$ cat test.txt
111111

65155@DESKTOP-R1M1DOQ MINGW64 ~/.ssh/AutoTest (main)
$ git merge mergedemo
Updating 26ad384…46f6531
Fast-forward
test.txt | 1 +
1 file changed, 1 insertion(+)

65155@DESKTOP-R1M1DOQ MINGW64 ~/.ssh/AutoTest (main)
$ cat test.txt
111111
xuyaohebing

65155@DESKTOP-R1M1DOQ MINGW64 ~/.ssh/AutoTest (main)
$ ll
total 1
-rw-r–r-- 1 65155 197609 0 Aug 2 15:29 config
-rw-r–r-- 1 65155 197609 21 Aug 2 15:37 test.txt

65155@DESKTOP-R1M1DOQ MINGW64 ~/.ssh/AutoTest (main)
$ cat test.txt
111111
xuyaohebing

65155@DESKTOP-R1M1DOQ MINGW64 ~/.ssh/AutoTest (main)
$ vim test.txt

65155@DESKTOP-R1M1DOQ MINGW64 ~/.ssh/AutoTest (main)
$ cat test.txt
111111
xuyaohebing
version1

65155@DESKTOP-R1M1DOQ MINGW64 ~/.ssh/AutoTest (main)
$ git status
On branch main
Your branch is ahead of ‘origin/main’ by 1 commit.
(use “git push” to publish your local commits)

Changes not staged for commit:
(use “git add …” to update what will be committed)
(use “git restore …” to discard changes in working directory)
modified: test.txt

Untracked files:
(use “git add …” to include in what will be committed)
config

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

65155@DESKTOP-R1M1DOQ MINGW64 ~/.ssh/AutoTest (main)
$ git add .

65155@DESKTOP-R1M1DOQ MINGW64 ~/.ssh/AutoTest (main)
$ git commit -m “v1”
[main 5d4c41c] v1
2 files changed, 1 insertion(+)
create mode 100644 config

65155@DESKTOP-R1M1DOQ MINGW64 ~/.ssh/AutoTest (main)
$ git push
Enumerating objects: 6, done.
Counting objects: 100% (6/6), done.
Delta compression using up to 4 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (4/4), 311 bytes | 311.00 KiB/s, done.
Total 4 (delta 0), reused 0 (delta 0), pack-reused 0
To github.com:tytgit/AutoTest.git
26ad384…5d4c41c main -> main

65155@DESKTOP-R1M1DOQ MINGW64 ~/.ssh/AutoTest (main)
$ vim test.txt

65155@DESKTOP-R1M1DOQ MINGW64 ~/.ssh/AutoTest (main)
$ git add .

65155@DESKTOP-R1M1DOQ MINGW64 ~/.ssh/AutoTest (main)
$ git commit -m “v2”
[main 118da4b] v2
1 file changed, 1 insertion(+)

65155@DESKTOP-R1M1DOQ MINGW64 ~/.ssh/AutoTest (main)
$ git push
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 4 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 304 bytes | 304.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
To github.com:tytgit/AutoTest.git
5d4c41c…118da4b main -> main

65155@DESKTOP-R1M1DOQ MINGW64 ~/.ssh/AutoTest (main)
$ git reset --hard HEAD^
HEAD is now at 5d4c41c v1

65155@DESKTOP-R1M1DOQ MINGW64 ~/.ssh/AutoTest (main)
$ cat test.txt
111111
xuyaohebing
version1

65155@DESKTOP-R1M1DOQ MINGW64 ~/.ssh/AutoTest (main)
$ git reset --hard HEAD^
HEAD is now at 46f6531 添加合并内容“

65155@DESKTOP-R1M1DOQ MINGW64 ~/.ssh/AutoTest (main)
$ cat test.txt
111111
xuyaohebing

65155@DESKTOP-R1M1DOQ MINGW64 ~/.ssh/AutoTest (main)
$ git reflog
46f6531 (HEAD -> main, origin/mergedemo, mergedemo) HEAD@{0}: reset: moving to HEAD^
5d4c41c HEAD@{1}: reset: moving to HEAD^
118da4b (origin/main) HEAD@{2}: commit: v2
5d4c41c HEAD@{3}: commit: v1
46f6531 (HEAD -> main, origin/mergedemo, mergedemo) HEAD@{4}: merge mergedemo: Fast-forward
26ad384 HEAD@{5}: checkout: moving from mergedemo to main
46f6531 (HEAD -> main, origin/mergedemo, mergedemo) HEAD@{6}: commit: 添加合并内容“
26ad384 HEAD@{7}: checkout: moving from main to mergedemo
26ad384 HEAD@{8}: checkout: moving from branch1 to main
9ba15bc HEAD@{9}: commit: 提交到分支1
26ad384 HEAD@{10}: checkout: moving from main to branch1
26ad384 HEAD@{11}: commit (initial): 2222

65155@DESKTOP-R1M1DOQ MINGW64 ~/.ssh/AutoTest (main)
$ git reset --hard 118da4b
HEAD is now at 118da4b v2

65155@DESKTOP-R1M1DOQ MINGW64 ~/.ssh/AutoTest (main)
$ cat test.txt
111111
xuyaohebing
version1
version2

【自用】2.git应用相关推荐

  1. 为Spring Cloud Config Server配置远程git仓库

    简介 虽然在开发过程,在本地创建git仓库操作起来非常方便,但是在实际项目应用中,多个项目组需要通过一个中心服务器来共享配置,所以Spring Cloud配置中心支持远程git仓库,以使分散的项目组更 ...

  2. 自用win软件小合集

    我弟要上大学了!他说他第一台笔记本希望是Windows系统的.我在我还是win10的时候给他搞了一版自用软件. 当然(狗头),我现在换成mac了. 文章目录 0 必备 装机 1 学习 1.1 办公 1 ...

  3. 如约而至:微信自用的移动端IM网络层跨平台组件库Mars已正式开源

    1.前言 关于微信内部正在使用的网络层封装库Mars开源的消息,1个多月前就已满天飞(参见<微信Mars:微信内部正在使用的网络层封装库,即将开源>),不过微信团队没有失约,微信Mars ...

  4. 【转】如约而至:微信自用的移动端IM网络层跨平台组件库Mars已正式开源

    网上看到关于微信官方的跨平台跨业务的终端基础组件Mars的介绍文章,转载这这里. 源代码: https://github.com/Tencent/mars 作者:男人 链接:https://zhuan ...

  5. 进阶 - Git的标签管理

    本篇文章,是基于我自用Windows(Win10)系统当做示例演示 本地仓库在:E:\test_git_rep 远程仓库是:git@github.com:lili40342/test_git_rep. ...

  6. 【Git】团队协作(终于学会了)

    前言 目前我写过有关Git的文章: <[闲谈]Git连接GitHub> <[Git]什么破玩意,pull不下来东西,不想用了> <[Git]删除操作> 说来也惭愧, ...

  7. ROS2_foxy教程总结(自用)

    ROS2_foxy教程总结(自用) 对https://docs.ros.org/en/foxy/Tutorials.html的归纳总结 ROS_DOMAIN_ID 不同的ID代表不同的领域,只有相同领 ...

  8. sublime html主题,自用Sublime Text 插件主题配置大全

    原则上收费的,但可以试用,试用期是免费的,在试用期间会提示你购买. package control 首先必须要介绍的就是这个,它是用来进行插件管理的,插件的安装.查看.删除都可以用package co ...

  9. 在Ubuntu环境下搭建Git服务器

    一.1.环境准备,1台Ubuntu系统的服务器(PC),1台用于客户端的自用PC,客户端PC安装了Sourcetree软件. 二.Ubuntu服务器配置: 1.安装git; $ sudo apt-ge ...

最新文章

  1. nginx php 大小写问题,Nginx实现url请求不区分大小写
  2. mysql union查询_一本彻底搞懂MySQL索引优化EXPLAIN百科全书
  3. O/R Mapping 研究报告(转)
  4. mvc 普通上传, 图片转二进制上传
  5. kafka备份机制——zk选举leader,leader在broker里负责备份
  6. java英语介绍_java,英文介绍项目.doc
  7. OpenCV将现有算法移植到G-API的实例(附完整代码)
  8. SAP Spartacus CMSService 的调用栈以及 meta 标签的生成过程
  9. vue与php接口对接,怎样使用vue项目中api接口
  10. 学习笔记9-C语言-传参、类型限定符、递归
  11. mysql判断不等于空的脚本_Shell脚本中判断输入变量或者参数是否为空的方法
  12. exfat最佳单元大小_双动圈四喇叭单元的头戴式耳机,DACOM HF002上手体验
  13. 【项目管理】用LoC衡量程序员的工作效率是不科学的
  14. Ueditor和CKeditor wysihtml5 编辑器的使用与配置
  15. preempt_disable宏
  16. 北美计算机专业申请,美国计算机专业名校TOP5申请深入解读
  17. 搭建 IPv6 Web服务器
  18. Java使用Thylemeaf + iText实现html(带图片)转pdf文件
  19. Fresco使用详情
  20. 怎样修改linux(虚拟机)系统开机密码

热门文章

  1. 正(斜)交平行投影变换矩阵
  2. 轻松入门Python爬取基金数据
  3. 关于pc页面在手机屏幕显示不全
  4. “大数据治理”专题导读
  5. 话机耳机模式进入保持状态下每隔1分钟会切换到免提模式后再切回耳机模式
  6. SPI驱动SD卡多块写介绍
  7. “中国IT服务管理论坛”2010年全国巡讲拉开帷幕
  8. 信息安全-网络安全的三大支柱和攻击向量
  9. 计算机恢复工具有哪些,电脑数据恢复软件选哪个?这三款恢复工具不容错过
  10. 计算机桌面怎么突然变大了,电脑屏幕突然变大了怎么办