一文带你上手git并使用git工具在github上创建(上传、关联)自已的项目

目录

背景

SVN集中式版本控制系统

git分布式版本控制系统

创建一个github项目并进行开发。

1.github创建空项目

2.关联项目

2-1. git clone 项目

进行正常开发

其他操作:修改回退操作

其他操作:代码冲突解决

git本地分支

git远程分支

其他指令

2-2:本地关联到已创建的远程github仓库

token获取

如果使用ssh


背景

SVN集中式版本控制系统

所有的代码版本都在svn server远程仓库,client通过连接网络从server上拿下来,必须都在统一局域网下

git分布式版本控制系统

每一个人本地就有一个仓库,操作都向本地仓库进行提交,最后合并时利用一个代码托管平台如github进行合并,也就是远程仓库

创建一个github项目并进行开发。

1.github创建空项目

右边的New


然后按步创建就行

创建完成,这儿的main表示当前在main分支(版本)上工作,initial commit表示提交时的说明

2.关联项目

有两个方法如下:分别是git clone到本地,直接开发即可,第二个是在本地创建项目,再关联到github的远程仓库

2-1. git clone 项目

复制这个连接,https和ssh都可以,后者更安全和快速,现在用前者

然后在终端:git clone [刚才复制的连接]

会做这些事:

1:远程仓库的代码拉到本地,远程仓库名默认origin

2:本地仓库生成一个默认的和远程一样的分支:main,当前就在main分支上

进行正常开发

注意,以下的main和master都是一样的,只是因为版本不同,导致说法不同

利用ssh clone:ssh密钥我配置好,配置方法在最下面
当然利用https方式clone也是可以的
git clone  git@github.com:daishiqiang123/test.git

cd test

git log 查看commit记录(工作区到本地仓库的提交记录,远程仓库的提交记录)
echo "hello" > hello.txt  正常开发工作

git status 查看一下状态:工作区和暂存区的文件,本地和远程是否一致
git add .  将工作区文件添加到暂存区:(未跟踪状态 -》 未被提交)
git commit -m "first"  将未被提交的文件,也就是暂存区的所有文件提交到本地仓库,并附带提交说明

git push origin master   将当前分支push到远程仓库的master分支

因为远程仓库数据有所变动,另外一个人需要拉取最新改动到本地:
git pull origin master

其他操作:修改回退操作

工作区修改的代码不要了:

git checkout -- <filename> 将本地仓库的文件覆盖工作区的文件,即回退到上一次提交的版本

已添加到暂存区,暂存区修改的代码不要了,想撤回:

git reset HEAD  HEAD是一个指针,指向最近一次提交,即回退到最近一次的提交,取消(删除)暂存区的修改,修改只在工作区了

已提交到本地仓库,想撤回提交:

git reset --hard <commit_id> 回退到上一个id的版本,hard:删除工作区和暂存区的修改

已push到远程仓库,想撤回:

git reset --hard <commit_id>    回退到上一个id的版本,hard:将暂存区和工作区的修改都删除、mixed(默认):只删除暂存区的修改、soft:保留工作区和暂存区的修改

git push -f origin master  重新将当前版本推送到远端,-f强制,因为只允许领先远程push,不允许落后远程push

其他操作:代码冲突解决

1 多方并发开发,后方提交时会产生冲突

解决:

先git pull 获取最新 

若两方修改的不是同一个地方(同一行),会自动合并

git push origin master  再推送上去即可

若两方修改的是同一个地方(同一行),pull合并时会产生冲突:

需要手动解决代码差异冲突:

解决后:

git本地分支

git branch dev : 创建分支
git branch -a:查看所有分支(包括本地和远程,一般来说都是一样的)
git checkout dev:切换到dev分支

git checkout -b dev:创建分支并切换到当前

git checkout -b dev origin/dev  :创建分支并切换到当前分支并追踪到远程分支dev

git branch -d dev        merge之后,删除这个分支

本地合并,在dev上开发完以后,切换到master主分支,进行本地合并:

git merge dev   直接合并到本地master仓库了,当然工作区的也被合并了

git push origin master 然后推送就可以了

也可以远程合并, 在dev上:

git push origin dev

然后在gihub上进行merge到master   这个方法不推荐,还是推荐在本地merge

合并分支时产生冲突:

和上面的多方并发开发,后方提交时会产生冲突的情况一样,也是需要判断是否有冲突并进行手动处理

解决:同上,如有冲突,需要手动处理冲突部分,再push

git远程分支

git push origin dev  推送当前分支时,自动创建远程分支dev

git branch --set-upstream-to=origin/dev 分支 'dev' 设置为跟踪来自 'origin' 的远程分支 'dev',方便pull

其他指令

git diff HEAD main.cpp  查看main.cpp修改了哪些部分

git fetch : 远程 拉取到 本地:不自动合并

git branch -vv 查看本地分支和远程分支的追踪关系

2-2:本地关联到已创建的远程github仓库

echo "this is a readme" > README.md
git add .   提交到暂存区(未跟踪状态 -》 未被提交)
git commit  -m  "first"     提交到本地仓库()
在github上手动创建名为test仓库:test.git
git remote add origin https://github.com/daishiqiang123/test.git:连接远端仓库(ssh链接也可以),orige为远程仓库
//git remote remove origin
git remote -v :查看本地仓库对应的远程仓库名
//git branch -M main:创建新的分支,我的默认是master
git push -u origin master // -u:为当前分支master设置上游仓库origin,以后push时就可以不用给出了
输入邮箱名
输入token

token获取

如何知道token呢?步骤如下:

 如果有:classic,就选classic那个

选择要授予此令牌token的范围或权限。

    要使用token从命令行访问仓库,请选择repo。
    要使用token从命令行删除仓库,请选择delete_repo
    其他根据需要进行勾选

如果使用ssh

获取公私钥

将这里面文件的内容复制到github上

ssh -T git@github.com 查看连接是否正常,如果successful即成功,说明也可以用ssh进行clone传输了

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值