【自用】2.git应用
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应用相关推荐
- 为Spring Cloud Config Server配置远程git仓库
简介 虽然在开发过程,在本地创建git仓库操作起来非常方便,但是在实际项目应用中,多个项目组需要通过一个中心服务器来共享配置,所以Spring Cloud配置中心支持远程git仓库,以使分散的项目组更 ...
- 自用win软件小合集
我弟要上大学了!他说他第一台笔记本希望是Windows系统的.我在我还是win10的时候给他搞了一版自用软件. 当然(狗头),我现在换成mac了. 文章目录 0 必备 装机 1 学习 1.1 办公 1 ...
- 如约而至:微信自用的移动端IM网络层跨平台组件库Mars已正式开源
1.前言 关于微信内部正在使用的网络层封装库Mars开源的消息,1个多月前就已满天飞(参见<微信Mars:微信内部正在使用的网络层封装库,即将开源>),不过微信团队没有失约,微信Mars ...
- 【转】如约而至:微信自用的移动端IM网络层跨平台组件库Mars已正式开源
网上看到关于微信官方的跨平台跨业务的终端基础组件Mars的介绍文章,转载这这里. 源代码: https://github.com/Tencent/mars 作者:男人 链接:https://zhuan ...
- 进阶 - Git的标签管理
本篇文章,是基于我自用Windows(Win10)系统当做示例演示 本地仓库在:E:\test_git_rep 远程仓库是:git@github.com:lili40342/test_git_rep. ...
- 【Git】团队协作(终于学会了)
前言 目前我写过有关Git的文章: <[闲谈]Git连接GitHub> <[Git]什么破玩意,pull不下来东西,不想用了> <[Git]删除操作> 说来也惭愧, ...
- ROS2_foxy教程总结(自用)
ROS2_foxy教程总结(自用) 对https://docs.ros.org/en/foxy/Tutorials.html的归纳总结 ROS_DOMAIN_ID 不同的ID代表不同的领域,只有相同领 ...
- sublime html主题,自用Sublime Text 插件主题配置大全
原则上收费的,但可以试用,试用期是免费的,在试用期间会提示你购买. package control 首先必须要介绍的就是这个,它是用来进行插件管理的,插件的安装.查看.删除都可以用package co ...
- 在Ubuntu环境下搭建Git服务器
一.1.环境准备,1台Ubuntu系统的服务器(PC),1台用于客户端的自用PC,客户端PC安装了Sourcetree软件. 二.Ubuntu服务器配置: 1.安装git; $ sudo apt-ge ...
最新文章
- nginx php 大小写问题,Nginx实现url请求不区分大小写
- mysql union查询_一本彻底搞懂MySQL索引优化EXPLAIN百科全书
- O/R Mapping 研究报告(转)
- mvc 普通上传, 图片转二进制上传
- kafka备份机制——zk选举leader,leader在broker里负责备份
- java英语介绍_java,英文介绍项目.doc
- OpenCV将现有算法移植到G-API的实例(附完整代码)
- SAP Spartacus CMSService 的调用栈以及 meta 标签的生成过程
- vue与php接口对接,怎样使用vue项目中api接口
- 学习笔记9-C语言-传参、类型限定符、递归
- mysql判断不等于空的脚本_Shell脚本中判断输入变量或者参数是否为空的方法
- exfat最佳单元大小_双动圈四喇叭单元的头戴式耳机,DACOM HF002上手体验
- 【项目管理】用LoC衡量程序员的工作效率是不科学的
- Ueditor和CKeditor wysihtml5 编辑器的使用与配置
- preempt_disable宏
- 北美计算机专业申请,美国计算机专业名校TOP5申请深入解读
- 搭建 IPv6 Web服务器
- Java使用Thylemeaf + iText实现html(带图片)转pdf文件
- Fresco使用详情
- 怎样修改linux(虚拟机)系统开机密码