当前位置:   article > 正文

Git | git的简单使用教程_downgit

downgit

如有错误,恳请指出。


这段时间在弄推荐系统的一个比赛,写了个算法模型,也算学习到了一些东西,这里想将其放在github中进行管理与保存,适当接触了一下Git的使用,这里就用这篇博客记录一下。

应该会持续更新~~~

关于如何下载git这里就不再详述,以下是指令是在git bash环境中进行。


1. 本地上传代码到Github

  1. 获取公钥

获取公钥的指令是:

ssh-keygen  -t rsa –C “youremail@example.com”
  • 1

命令运行之后,在路径C:\Users\Acer.ssh下,会出现两个文件,id_rsa是私钥,不能泄露出去;id_rsa.pub是公钥,可以放心地告诉任何人。

在这里插入图片描述

  1. 配置ssh keys

依次点击:Settings -> SSH and GPG keys -> New SSH key,如下所示:

在这里插入图片描述
Title:自行设置
Key:这里复制的是公钥,也就是id_rsa.pub的内容,然后点击Add SSH key即可

在这里插入图片描述

  1. 新建仓库进行push

新建仓库之后,github官方其实已经提供了些示例教程示范如何上传一个readme文件在github的远程仓库中。

在这里插入图片描述

这里由于我的模型还没有配置cuda加速,只能使用cpu来进行训练,在之后我会再上传一个gpu的训练版本。所以,现在的需求是想要独立的保存当前的cpu版本代码,以供后续回退。

以下是我的完整git命令操作:

# 1. 环境初始化
git init

# 2. 增加一个远程服务器的别名,也是本地仓库名origin
# 这里测试添加一个别名为origin ,用户名为Clichong,仓库名为CTR的仓库
git remote add origin https://github.com/Clichong/CTR.git

# 3. 添加需要上传的文件
# 这里我上次当前目录的所以代码,也就是整个项目
git add ./*

# 4. 提交到本地库并进行描述
git commit -m "CrossDomianNet with CPU persion"

# 5. 设置tag
git tag v1.0-cpu
# git tag -d v1.0-cpu可以进行删除
# git tag 可以查看当前环境的tag

# 6. push代码到这个tag上面
git push -u origin v1.0-cpu

# 7. 与主分支master合并, 并push到主分支上
git checkout master
git merge v1.0-cpu
git push origin master
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26

如此实现了我的需求:

在这里插入图片描述
以下是输入命令的相关弹出信息:

在这里插入图片描述

ps:关于github环境配置的任何问题,或者上传的问题,可以参考我另外一篇博文:解决git clone与git push出现的若干问题:Failed to connect to github.com port 443: Timed out

后续,我又补充了一个gpu训练的模型版本(cpu实在是太慢了),然后使用同样的方法,创建另外的一个 v1.0-gpu 分支tag进行 git push 即可。如此既可以获得多分支的版本管理。

同时,需要注意把master分支更新至 我们的 v1.0-gpu 分支tag中,最后效果如下所示:

在这里插入图片描述


2. Github下载代码到本地

  1. 方法1:git clone下载

通过git下载项目比较简单,主要通过git clone指令就可以了,在git bash环境中执行

git clone https://github.com/Clichong/CTR.git
  • 1
  1. 方法2:界面下载

也可以直接在github的界面上进行下载
在这里插入图片描述

  1. 方法3:DownGit下载

通过DownGit下载,网址如下:https://minhaskamal.github.io/DownGit/#/home?url=

在这里插入图片描述

只需要把需要下载的对应链接放在上面就可以下载了

  1. 方法4:插件下载

通过一些插件可以进行下载,比如扩展工具:GitZip for github

在这里插入图片描述

在右端直接勾选即可下载,非常方便

  • 总结:

以上的方法3和方法4直接解决了Github中无法下载目录下的某个单一文件或者单一目录的需求,而使用一些插件会让下载变得更加的方便。


3. Git中的tag标签使用

在上诉我的需求中,想要单独的将cpu与gpu划分为不同的tag版本,以供管理与后续的下载。这里参考资料3来进行详细了解一下Git中的tag使用。

  1. 创建tag
# 创建本地tag
git tag <tagName> 

# 推送到远程仓库
git push origin <tagName> 

# 若存在很多未推送的本地标签,想一次全部推送的话
git push origin --tags

# 查看当前分支的提交历史 里面包含 commit id
git log --pretty=oneline
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  1. 查看tag
# 查看本地某个 tag 的详细信息
git show <tagName>

# 查看本地所有 tag
git tag 或者 git tag -l

# 查看远程所有 tag
git ls-remote --tags origin
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  1. 删除tag
# 本地 tag 的删除
git tag -d <tagName>

# 远程 tag 的删除:
git push origin :refs/tags/<tagName>

# 把本地tag 推送到远程
git push origin <tagName>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  1. 检出tag
# 可以指定标签信息
git tag -a <tagname> -m "XXX..."

# 创建附注标签
git tag -a v0.1.0 -m "release 0.1.0 version"

# 切换标签
git checkout [tagname]
git checkout -b <branchName> <tagName>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

4. Git中的branch分支管理

详细参考资料2.

  1. 创建分支

例子:在本地仓库目录创建一个branch.txt以分支提交。

git branch #显示当前分支是master
git branch new-txt  #创建分支命名为new-txt
git checkout new-txt  #切换到新分支
touch branch.txt
git add branch.txt
git commit -a -m "added branch.txt"
git push test_readme new-txt  ##把分支提交到远程服务器,只是把分支结构和内容提交到远程,并没有发生和主干的合并行为。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

在github左上角可看到,new-txt分支已经上传成功,文件也存在了。主master却还没有新文件,因为没合并。

在这里插入图片描述

  1. 合并分支

如果new-feature分支成熟了,觉得有必要合并进master

git checkout master  #切换到新主干
git merge new-txt  ##把分支合并到主干
git branch #显示当前分支是master
git push test_readme master #此时主干中也合并了new-txt的代码,test_readme为别名
  • 1
  • 2
  • 3
  • 4

在github中成功合并,新文件 branch.txt 也存在了。

在这里插入图片描述

ps:这里其实和tag管理是类似的感觉

  1. 删除分支与其他命令
#更新远程分支列表
git remote update 别名 --prune

#查看所有分支
git branch -a

#删除远程分支
git push 别名 --delete 分支名

#删除本地分支
git branch -d 分支名
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

5. Git基本常用命令

mkdir:         XX (创建一个空目录 XX指目录名)

pwd:          显示当前目录的路径。

git init          把当前的目录变成可以管理的git仓库,生成隐藏.git文件。

git add XX       把xx文件添加到暂存区去。

git commit –m “XX”  提交文件 –m 后面的是注释。

git status        查看仓库状态

git diff  XX      查看XX文件修改了那些内容

git log          查看历史记录

git reset  --hard HEAD^ 或者 git reset  --hard HEAD~ 回退到上一个版本

                     (如果想回退到100个版本,使用git reset –hard HEAD~100 )

cat XX         查看XX文件内容

git reflog       查看历史记录的版本号id

git checkout -- XX  把XX文件在工作区的修改全部撤销。

git rm XX          删除XX文件

git remote add origin https://github.com/tugenhua0707/testgit 关联一个远程库

git push –u(第一次要用-u 以后不需要) origin master 把当前master分支推送到远程库

git clone https://github.com/tugenhua0707/testgit  从远程库中克隆

git checkout –b dev  创建dev分支 并切换到dev分支上

git branch  查看当前所有的分支

git checkout master 切换回master分支

git merge dev    在当前的分支上合并dev分支

git branch –d dev 删除dev分支

git branch name  创建分支

git stash 把当前的工作隐藏起来 等以后恢复现场后继续工作

git stash list 查看所有被隐藏的文件列表

git stash apply 恢复被隐藏的文件,但是内容不删除

git stash drop 删除文件

git stash pop 恢复文件的同时 也删除文件

git remote 查看远程库的信息

git remote –v 查看远程库的详细信息

git push origin master  Git会把master分支推送到远程库对应的远程分支上
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61

参考资料:

1. Git使用教程

2. linux下git和github搭建使用教程

3. Git中tag标签的使用

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/空白诗007/article/detail/847701
推荐阅读
相关标签
  

闽ICP备14008679号