git单机操作

Q:git 使用http 和 ssh 区别?

使用https url克隆对初学者来说会比较方便,复制https url然后到git Bash里面直接用clone命令克隆到本地就好了,但是每次fetch和push代码都需要输入账号和密码,这也是https方式的麻烦之处。

而使用SSH url克隆却需要在克隆之前先配置和添加好SSH key,因此,如果你想要使用SSH url克隆的话,你必须是这个项目的拥有者。否则你是无法添加SSH key的,另外ssh默认是每次fetch和push代码都不需要输入账号和密码

步骤1:检查你的电脑上是否已经生成了SSH Key
在git bash下执行如下命令
cd  ~/.ssh ls
这两个命令就是检查是否已经存在id_rsa.pub或id_dsa.pub文件,如果文件已经存在,那么你可以跳过步骤2,直接进入步骤3

步骤2:创建一个SSH Key
在git bash下执行如下命令


ssh-keygen -t rsa -C "你的email地址"

ps:ssh-keygen -t rsa -C "你的email地址" -f ~/.ssh/gitlab-rsa  (本地配置多套shh key,在~/.ssh目录下新建名称为config的文件(无后缀名)。用于配置多个不同的host使用不同的ssh key,内容如下)https://www.cnblogs.com/hafiz/p/8146324.html
代码参数含义:
-t指定密钥类型,默认是rsa,可以省略。
-C设置注释文字,比如邮箱。
-f指定密钥文件存储文件名。
以上命令省略了-f参数,因此,运行上面那条命令后会让你输入一个文件名,用于保存刚才生成的SSH key代码,如:
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/you/.ssh/id_rsa): [Press enter]
当然,你也可以不输入文件名,使用默认文件名(推荐),那么就会生成id_rsa和id_rsa.pub两个秘钥文件。
接着又会提示你输入两次密码(该密码是你push文件的时候要输入的密码,而不是github管理者的密码),当然,你也可以不输入密码,直接按回车。那么push的时候就不需要输入密码,直接提交到Git服务器上了,如:
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
接下来,就会显示如下一些提示,如:
Your identification has been saved in /c/Users/you/.ssh/id_rsa.
Your public key has been saved in /c/Users/you/.ssh/id_rsa.pub.
The key fingerprint is:
01:0f:f4:3b:ca:85:d6:17:a1:7d:f0:68:9d:f0:a2:db 你的email地址
当你在Git Bash上看到这段显示的时候,那就说明,你的SSH key已经创建成功,你只需要添加到Git服务器上的SSH key(id_rsa.pub)上就可以了。
步骤3:添加SSH Key到Git服务器
这个由于不同的Git服务器,在界面添加的区域不一样,所以不做详述,具体参照不同Git服务器自己的操作。
经历了以上的三个步骤之后,你就可以愉快的使用SSH URL的方式来提交和克隆项目的代码了,不需要再频繁的输入账号密码

单机操作

安装git,linux

git --version命令检查是否已经安装

wget  这个名称来源于 “World Wide Web” 与 “get” 的结合

wget https://github.com/git/git/archive/master.zip

$ git config --global user.name "feicongcong"
$ git config --global user.email "734820209@qq.com"

 

创建版本库  git init

把文件添加到版本库 git add readme.txt c1.txt (git add .)

文件提交 git commit -m "first commit"

git status命令可以让我们时刻掌握仓库当前的状态

    Changes not staged for commit:改动/删除的文件

    Untracked files:增加的文件


git diff readme.txt 查看readme.txt的变动

git log历史提交commit记录

git reset --hard 1094a 版本回退

git reflog查看命令(包括commit,回退)历史

git reset --hard 0230e2b

Git跟踪并管理的是修改,而非文件

git checkout -- readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况:(每个分支都生效)

一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;

一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态

git reset HEAD <file>可以把暂存区的修改撤销掉(unstage),重新放回工作区,当我们用HEAD时,表示最新的版本(每个分支都生效)

git rm readme.txt从版本库中删除该文件,之后需要git commit -m "remove readme.txt"

红色表明修改在工作区

绿色表明修改在暂存区(已add到暂存区,但未commit)

git status查看工作区(红色),查看暂存区(绿色)

 

windows上git保存了多个git账号

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值