Git操作

本文详细介绍了Git的安装、配置、SSH密钥管理、常用命令及其工作流程,包括克隆、分支管理、提交与合并,以及错误处理和版本控制技巧。适合初学者及进阶者参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.下载git并安装

https://git-scm.com/downloads
安装完git后,在任意文件夹下右键,会出现“Git Bash Here”,即表示安装成功。

2.配置git

打开Git Bash,添加用户名和邮箱(自己名字拼音):
$ git config --global user.name “zhangshan”
$ git config --global user.email “zhangshan@qq.com”
$ git config --global core.autocrlf false
$ ssh-keygen -t rsa -C “zhangshan@qq.com”
然后按三次回车

3.复制key

生成的key存在于目录 ~/.ssh,
在这里插入图片描述

4.查看并复制id_rsa.pub里的全部内容

在这里插入图片描述
4.配置key
登录服务器192.168.1.xx 用户名:admin(自己的名字拼音哦) 密码:12345678。第一次登进去会重设密码。我们还有一个mail:zhangshan@qq.com(这里也是自己名字拼音),用于提交代码。
在这里插入图片描述
然后如下图添加上面复制的key字串
在这里插入图片描述
在这里插入图片描述
将上面复制的字符串粘贴到key框内。Title写自己名字,点击add key即可。

5.点击helloworld
在这里插入图片描述
与服务器连接已完成,现在可以愉快的在本地工作啦。
一、正常工作流程是酱紫的:

  1. 先新建一个存放代码的文件夹,比如叫git,在git文件夹里面右击,选择git bash.
    把远程项目克隆到本地。
    命令:$ git clone git@192.168.1.xx:root/hellword.git
    你会在git文件夹里看到hellword文件夹。这个就是克隆下来的远程项目。

注意:第一次clone的时候会出现“The authenticity of host ‘192.168.1.xx (192.168.1.xx)’ can’t be established“的提示,输入yes,以后clone不会再出现。
在这里插入图片描述
2. 进入该项目工作
为了更清晰的了解工作流程,首先我们来讲讲git的工作机制。
打开我们的项目文件,是不是下面这样子的?
在这里插入图片描述
.git里面是版本库。其余a,aa,helloworld.md,test2.md都是我们的代码,就是工作区啦。
看下图,版本库里面还有一个暂存区stage,我们在工作区修改代码,git add提交到暂存区stage,git commit提交到当前master分支。
在这里插入图片描述
大致明白git的机制了。我们要开始工作啦。3.
3. $ cd hellword/ //切换到工作路径
4. 你可以在工作区生成文件,也可以直接修改存在的文件。但是注意,不要在主分支下面工作啦,安全考虑,如果你出错了,不会影响主分支,如果你硬要,也是可以的。以添加一个文件为例:
5. $ git checkout -b dev //先创建分支dev并切换到该分支。Checkout是切换分支,加-b是新建分支,并切换。
6. $ touch aa //生成文件aa
7. $ git add aa //把a文件添加到暂存区。
8. $ git commit aa -m “first commit aa” //将改动提交到dev分支。
9. $ git checkout master //如果你确定你的工作完成了,想把改动提交到服务器,那么就要将dev分支合并到master分支啦。先切换到master分支。
10. $ git merge dev //合并dev分支,这时候你的改动就提交到master分支啦
11. $ git push -u origin master //把本地仓库改动push到远程仓库,这样你的改动就提交到服务器了啦。这里origin指的是远程仓库,master指的是本地主分支,当然你也可以push dev分支,把master改成dev即可。不过我们组只推master。
11. $ git branch -d dev //dev的任务已完成,删除。你可以用git branch查看当前存在分支
整个提交过程如此啦。当然,事情并没有这么简单,很多时候push是不会这么轻易成功的。如果主分支已经让别人更新了,你还没有同步,你push就不会成功。
12.$ git pull //将本地主分支和远程分支同步,这样你就会把最新的代码copy到本地.
然后再按上面的方式push就好啦。
所以,我们每天上班的第一件事就是git pull,同步远程仓库咯。
二、出错了怎么办?
1.如果你想看看时刻掌握仓库动态,用git status.
在这里插入图片描述
上面的信息有:1.当前分支与远程主分支是同步的 2.你改变了aa这个文件,但是还没有提交。
add 和 commit之后再看git status。
在这里插入图片描述
你没有要提交的啦,但是你只提交到本地了,还没有同步到远程。所以你的分支是一次提交ahead of ‘origin/master’ 。是不是很清楚?
2.如果你想看看你对aa文件修改了啥,用git diff aa。前提是你还没有提交哦。
3.如果你想看看提版本管理信息,用git log。只显示简单的一行信息用$ git log --pretty=oneline
在这里插入图片描述
长串数字是版本号(commit id),后面是我们commit是提交的信息。HEAD表示当前版本,HEAD表示上一版本,HEAD^表示上上版本。HEAD~100表示上100个版本。
神奇的版本回退来啦。git reset --hard HEAD^ 回退到上一版本
git reset –hard + commit id就是回到该版本。
你回退之后,就没有当前版本了。万一你后悔了怎么办,又想回到之前版本?只要找到之前版本的id就可以啦。怎么找?git reflog查看历史命令,就可以找到id啦。
3. 场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout – file。
场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操作。
场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,那就是2里面的版本回退。
4.从工作区删除文件rm file,从版本库删除文件 git rm file。如果后悔了怎么办?只是rm file,你可以使用git checkout – file.把版本库的file就会恢复到工作区,如果你是git rm file,版本库已经没有这个文件了,怎么办?你可以版本回退呀,先git reset --hard HEAD^ 再git checkout --file。
当然,以上的前提都是你没有同步到远程仓库。如果你已经同步到远程了,就没辙了吗?嘿嘿,办法还是有的,看这里http://blog.youkuaiyun.com/dss886/article/details/49232051,是不是顿时觉得git很友善?所以说嘛,世上没有后悔药?还是有的。妈妈再也不担心我乱改代码了。

下面有一张指令流程图,如果你看懂了上面的内容,是不是觉得,我啰嗦了那么多,其实这张图已经说明了一切。

在这里插入图片描述

好了,git教程就到此为止啦,绝对可以满足工作需要了。如果你嫌指令麻烦,你可以使用source tree,tortoise git等图形界面客户端,这个就自行百度吧,实在太简单啦。

Git常用的命令

1.提交代码

1. $ git add aa   //把a文件添加到暂存区。
2. $ git commit aa -m "改动xxx" //将改动提交到dev分支。
3. $ git checkout master   //如果你确定你的工作完成了,想把改动提交到服务器,那么就要将dev分支合并到master分支啦。先切换到master分支。
4. $ git merge dev  //合并dev分支,这时候你的改动就提交到master分支啦
5. $ git push -u origin master //把本地仓库改动push到远程仓库,这样你的改动就提交到服务器了啦。这里origin指的是远程仓库,master指的是本地主分支,当然你也可以push dev分支,把master改成dev即可。不过我们组只推master。

2.创建分支 合并代码

1.  git init
2.  git checkout debug //进入debug分支;  
    git checkout -b dev 创建并进入dev分支
3.  git branch -a //查看所有分支
4.  git add .  //添加所有    ;  git add file  //添加某个文件
5.  git commit  file  -m  “说明信息”
5.  git status
6.  git log ; git log --pretty=oneline
7.  git reset --hard  18f6c9a612d7e10c0abced67ff5ed801962b91f9 重回某个版本
8.  git diff readme.txt //对比改动

3.reset version

git log
git reset –hard  commit_id

3.tag

//查看
git tag

//先提交代码到git服务器
git add STM32XX
git commit STM32XX -m "XXX"
git push -u origin master

//再打tag
git tag STM32_V1.00
git push origin STM32_V1.00

//查看
git tag
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

静思心远

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值