github使用笔记

什么是github

github是一个基于git的代码托管平台.
Github 由Chris Wanstrath, PJ Hyett 与Tom Preston-Werner三位开发者在2008年4月创办。迄今拥有59名全职员工,主要提供基于git的版本托管服务。

  • 下来需要检查SSH
    因为GitHub会用到SSH,因此需要在shell里检查是否可以连接到GitHub:
ssh -T git@github.com

配置Git

首先在本地创建 ssh key;
第一步:检查本地是否已井具有ssh keys,如果已经具有,则进行第二步,否则,进行第三步

cd ~/.ssh
ls

第二步:备份并移除已经存在的ssh keys

mkdir key_backup
cp id_rsa* key_backup
rm id_rsa* 

即将已经存在的id_rsa,id_rsa.pub文件备份到key_backup文件夹

第三步:执行如下命令(不具有ssh keys时):

ssh-keygen -t rsa -C "你自己的github对应的邮箱地址"

注1:双引号“”是需要的!
注2:命令是在ssh目录下进行的!

开始使用github

接下来我们要做的就是把本地仓库传到github上去,在此之前还需要设置username和email,因为github每次commit都会记录他们。
即利用自己的用户名和email地址配置git

git config --global user.name "你的github用户名"
git config --global user.email "你的github邮箱地址"

如何推送本地内容到github上新建立的仓库
github上新建立仓库
具体内容不做介绍,假设,新建的仓库为dockerfiels
在本地建立一个目录
该目录名称与github新建立的目录相同,假设本地目录为~/Document/dockerfiles

本地仓库初始化

cd ~/Document/dockerfiles
git init

对本地仓库进行更改
例如,添加一个Readme文件

touch Readme

对刚刚的更改进行提交
该步不可省略!

git add Readme
git commit -m 'add readme file'

push

首先,需要将本地仓库与github仓库关联 ,有两种方式(SSH和https)

git remote add origin https://github.com/你的github用户名/你的github仓库.git 

或者

$ git remote add origin git@github.com:你的github用户名/你的github仓库.git 
$ git pull origin master

将远程仓库的文件重新下载到本地仓库,然后再次执行

$ git push origin master 

删除远程仓库不想要的文件

ps:我们在上传项目后如果上传了你不想要的文件怎么办?很操蛋的在github上我们是不能直接删除仓库的文件,我们只能通过终端命令来删除我们不想要的文件或者目录

Git 如何删除远程服务器文件同时保留本地文件

在上传工程到git上时,有时候会把本地的一些eclipse配置文件传到服务器上,这时你先删除本地,再同步服务器,显然是不合理的。git提供了一个好的解决方法,可以直接删除服务器文件,同时不影响本地文件,命令如下
1.删除服务器文件,本地保留
此时github上已经不存在了
2.删除远程useless 文件夹,本地保留
一定要注意,删除文件夹要使用-r 参数

git rm --cached -r useless
git commit -m "remove directory from remote repository"
git push
git init # 初始化本地Git版本库
git add # 暂存文件,如果使用

. 表示当前目录及其子目录

git commit -m “first commit” # 提交,-m选项后跟内容为提交所用的注释
git remote -v # 查看当前项目远程连接的是哪个版本库地址
git push origin master # 将本地项目提交到远程版本库
git fetch origin # 取得远程更新(到origin/master),但还没有合并
git merge origin/master # 把更新的内容(origin/master)合并到本地分支(master)
git pull origin master # 相当于fetch和merge的合并,但分步操作更保险

对clone下来的仓库进行更改

切换到某一个 tags

git checkout tag_name

但是,这时候 git 可能会提示你当前处于一个“detached HEAD" 状态。
因为 tag 相当于是一个快照,是不能更改它的代码的。
如果要在 tag 代码的基础上做修改,你需要新建一个分支:

git checkout -b branch_name tag_name

例如,添加一个新的文件

touch Readme_new
  • 对刚刚的更改进行提交

该步不可省略!(其实是提交到git缓存空间)

git add Readme_new
git commit -m 'add new readme file'
  • push
    首先,需要将本地仓库与github仓库关联
    注:https://github.com/你的github用户名/你的github仓库.git 是github上仓库的网址
git remote add origin https://github.com/你的github用户名/你的github仓库.git  

有时,会出现fatal: remote origin already exists.,那么,需要输入git remote rm origin 解决该问题
然后,push,此时,可能需要输入github账号和密码,按要求输入即可

git push origin master

注:有时,在执行git push origin master时,报错:error:failed to push som refs to…….,那么,可以执行

git pull origin master

至此,github上已有的仓库的便有了更新

demo

echo "# ln-global-planner" >> README.md
git init
git add README.md
git commit -m "first commit"
git branch -M main
git remote add origin https://github.com/DylanLN/ln-global-planner.git
git push -u origin main

在github的readme添加图片

1、在GitHub上的仓库建立一个存放图片的文件夹,文件夹名字随意。如:img-storage

2、将需要在READNE.md中显示的图片,上传到img-storage文件夹中。

3、然后进入仓库的img-storage文件夹中,打开图片,在你的浏览器就会显示图片的链接地址。

4、点击编辑你需要修改的md文件,在文件编辑的合适位置将第三步获得的图片链接放入后面的小括号当中

 ![Image text](图片连接)

git退回到某个版本

先查看版本号

git reflog

输出:

1717285 HEAD@{0}: commit: .
80c1e0b HEAD@{1}: commit: 完善一些功能,修补一些漏洞
71ba083 HEAD@{2}: commit: 添加图片
09d70ba HEAD@{3}: commit: 添加图片
82af0e3 HEAD@{4}: commit: 创建alpa分支
48cf384 HEAD@{5}: commit: add readme
dc05b24 HEAD@{6}: commit: add readme
7b7afdf HEAD@{7}: commit: add readme
4e5d6e5 HEAD@{8}: commit: v1.1
655ec7e HEAD@{9}: commit: v1.1
ec09d7c HEAD@{10}: clone: from https://github.com/DylanLN/reinovo_control.git

或者

git log --pretty=oneline

恢复到某个版本号(例如恢复到: 80c1e0b HEAD@{1}: commit: 完善一些功能,修补一些漏洞)

git reset --hard 80c1e0b

输出:

HEAD 现在位于 80c1e0b 完善一些功能,修补一些漏洞

推送到远程

githubgit push -f -u origin master

完成

从远程仓库更新本地代码

(使用如下命令在本地建立一个work分支,并将远程origin仓库的main分支代码下载到本地work分支)

git fetch origin main:work

使用如下命令在比较本地代码与刚从远程下载的代码区别

git diff temp

如果没有太大问题,直接使用下面命令进行合并
按q退出

git merge temp

5删除temp分支

git branch -d temp

删除远程分支

git push origin --delete master

下载指定版本的代码

输入git log查看提交的历史commit

复制需要回退版本到的commit后面序列,命令如下即可回退到指定版本

 git checkout xxxxxxxxxxxxxxx

设置本机的用户名及邮箱

git config --global user.name "Your Name"
git config --global user.email your@example.com
//解释: --global 选项代表对 Git 进行全局设置。

下载某个文件夹而非整个项目

安装svn

sudo apt-get install subversion

在网页上进入要下载的文件夹导出其url,例如
https://github.com/DylanLN/oryxbot_ws-ros2/tree/master/src/oryxbot2_base
并将其中的tree/master改为trunk

现在来运行

 svn checkout https://github.com/DylanLN/oryxbot_ws-ros2/trunk/src/oryxbot2_base

还原本地修改

git reset --hard

本地修改我都不需要。但是这有点狠,

相关术语

master分支,即主分支。任何项目都必须有个这个分支。对项目进行tag或发布版本等操作,都必须在该分支上进行。
develop分支,即开发分支,从master分支上检出。团队成员一般不会直接更改该分支,而是分别从该分支检出自己的feature分支,开发完成后将feature分支上的改动merge回develop分支。同时release分支由此分支检出。

release分支,即发布分支,从develop分支上检出。该分支用作发版前的测试,可进行简单的bug修复。如果bug修复比较复杂,可merge回develop分支后由其他分支进行bug修复。此分支测试完成后,需要同时merge到master和develop分支上。

feature分支,即功能分支,从develop分支上检出。团队成员中每个人都维护一个自己的feature分支,并进行开发工作,开发完成后将此分支merge回develop分支。此分支一般用来开发新功能或进行项目维护等。

fix分支,即补丁分支,由develop分支检出,用作bug修复,bug修复完成需merge回develop分支,并将其删除。所以该分支属于临时性分支。

hotfix分支,即热补丁分支。和fix分支的区别在于,该分支由master分支检出,进行线上版本的bug修复,修复完成后merge回master分支,并merge到develop分支上,merge完成后也可以将其删除,也属于临时性分支。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值