ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

git使用笔记

2020-01-09 13:03:02  阅读:198  来源: 互联网

标签:文件 git 仓库 笔记 命令 暂存区 ssh 使用


1、用途:版本非线性控制;

2、基本结构如下:

 如上图所示,git有三个重要的区域:工作区工作目录(一般即master)、暂存区;三个重要的状态:已修改已保存已提交Head是一个指向master的“游标”,可以用master替换;

3、用法

下面以一个例子讲解一下:

建立一个文件夹:./git_test/,在这个文件夹中放入一个脚本1.txt;

那么git_test文件夹即为工作区,我们在该文件夹下使用:git init ,则建立了一个和这个工作区对应的版本库,版本库的作用更像是指针。版本库 = 暂存区(index) + 工作目录(master) + 对象库(objects)。对象库中存储建立的对象和内容。

(注意:建立的仓库都要先申明身份,即user_name 和 email,操作如下:

git config --global

上图中,确定了身份后,以后就用这个身份管理仓库)

我们使用 git status 查看仓库状态,会发现 1.txt属于 untracked ,因为它还没有被版本库索引;为了索引 1.txt ,我们先使用 git add 1.txt 在暂存区索引它,再使用 git commit -m "一些提示信息" 用暂存区的内容更新工作目录和对象库;

假如我们现在对 1.txt 进行修改,修改后,我们依然要使用 git add 和 git commit 将修改更新到版本库和工作区中;

(1)当执行 "git reset HEAD" 命令时,暂存区的目录树会被重写,被 master 分支指向的目录树所替换,但是工作区不受影响;

(2)当执行 "git rm --cached <file>" 命令时,会直接从暂存区删除文件,工作区则不做出改变;

(3)当执行 "git checkout ." 或者 "git checkout -- <file>" 命令时,会用暂存区全部或指定的文件替换工作区的文件。这个操作很危险,会清除工作区中未添加到暂存区的改动;

(4)当执行 "git checkout HEAD ." 或者 "git checkout HEAD <file>" 命令时,会用 HEAD 指向的 master 分支中的全部或者部分文件替换暂存区和以及工作区中的文件。这个命令也是极具危险性的,因为不但会清除工作区中未提交的改动,也会清除暂存区中未提交的改动;

(5)使用 git log 命令查看历史记录。使用该命令会显示从最近到最远的提交记录,每条记录中显示版本号、提交者、提交日期以及提交记录四项;

(6)使用 git reset --hard commit_id 命令进行回退(注意:只要本次进程没有关闭,还是可以通过同样的命令回到未来的版本。);

(5,6)配合使用如下:

 

(7)假如进程关闭之后再想回到未来版本的话,可以使用 git reflog 命令查看命令历史,从中获知未来版本的版本号并进行穿梭。重启Git Bash 操作如下:

 (8)撤销修改

可以使用 git checkout -- file 命令撤销工作区的修改。很容易理解,检出操作会用最近一次commit或add的文件来覆盖当前修改过的文件,当前工作区的修改就等同于被撤销。这里如果已经添加到了暂存区,则会恢复暂存区的状态;如果还没添加至暂存区,则会回到版本库中的最新版本时的状态。如果修改已经添加至暂存区,则可以使用 git reset HEAD file 操作,将暂存区的修改撤销,重新放回工作区。此时,便可以使用checkout命令撤销工作区的修改~如果修改已经提交至版本库。。。 回退版本吧~

(9)删除文件

删除文件的时候,我们直接在系统中删除文件。此时,git中便会显示删除的文件,此时可以使用 git rm 文件名 并提交将文件从版本库中删除;或者使用 git checkout 文件名 命令恢复文件。比如这里新建了remove.js文件,之后在系统中删除该文件。

 注意:这些操作都是先经过暂存区再提交!!!

(10)本地仓库 同步 远程仓库(github)

首先建立远程仓库和本地仓库的SSH连接,这就需要公钥私钥对,在本地生成公钥私钥对,公钥给远程仓库,私钥留给本地,操作如下:

首先在github上新建仓库:

注意,此处的仓库名不一定需要和本地仓库名相同。

点击创建就创建好了一个空的远程仓库。

这里的大批提示就是我们接下来的大部分操作了。注意记住上面的ssh链接,最好不用http;

先回头在git bash中进行这样一项操作:

因为ssh链接主机需要密码验证,我们需要在本机建立密钥并注册到远程主机上,下面是建立ssh密钥过程:

使用命令检查是否本地用户主目录有名为.ssh的密钥保存文件夹和密钥文件。

ls -al ~/.ssh

如果没有会提示你的,一般你没用过git bash或ssh建立过密钥的都没有此文件夹,或是文件夹没有文件。

之后建立密钥,使用如下命令:

ssh-keygen -t rsa -C "your email addr" 

注意邮箱地址也是不限制必须和哪个相同。

操作如下:

注意在输入文件名那里直接回车就可以了,默认密钥文件名是id_rsa,公钥文件就是名是id_rsa.pub

然后输入密码并确认就可以了,成功会返回指纹识别吗和随机字符画,不用记。

然后在用户主目录.ssh文件夹下找到后缀为.pub的公钥文件,用文本编辑器打开并将其所有内容复制下来。

复制完之后回到github上,

在主界面右上角找到设置那个选项:

 点击Add SSH key,在出现的UI中添加密钥名和密钥内容:

 之后点击添加即可。注意添加成功后会邮件通知你(你是指github注册邮箱持有人)。

然后使用下面的命令连接至github的远程仓库:

ssh -T git@github.com

之后我们按照如下命令将本地仓库递交到远程仓库:

上传之前要对修改做一次总结,写好“日志”

git commit -m ".................."

省略号中添加文字描述。

将本地仓库和远程仓库建立连接:

git remote add origin git@github.com:wylhyz/learngit.git

origin是远程仓库在本地别名,你可以自由取,git链接是在建立远程仓库时要你记下的ssh连接。此句就是在本地建立远程仓库别名并链接到远程仓库。

 然后直接使用如下命令就可以将更改上传了:

git push -u origin master

 

标签:文件,git,仓库,笔记,命令,暂存区,ssh,使用
来源: https://www.cnblogs.com/zf-blog/p/12170852.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有