首页 > 其他分享 >git使用(复健 1 )

git使用(复健 1 )

时间:2023-01-16 21:44:51浏览次数:50  
标签:复健 HEAD git add 使用 readme commit bash

#

```shell
#ubuntu:
sudo apt-get install git
```

### winodws

https://git-scm.com/downloads

设置用户名和邮箱:

```bash
$ git config --global user.name "Your Name"
$ git config --global user.email "[email protected]"
#global表示本机上所有git仓库都使用这个配置
```

查看用户名和邮箱:

```bash
git config user.name
git config user.email
```

## 创建仓库**repository**

创建目录并进入,使用git init转换为git仓库

windows下目录名最好不要带中文

```bash
$ pwd
/d/firstgit
$ git init
Initialized empty Git repository in D:/firstgit/.git/
$ ls
$ ls -ah
./ ../ .git/
```

.git目录用于跟踪管理版本库

将创建的文本文件放入此目录

```bash
#添加到仓库
git add readme.txt
```

git无法跟踪图片/视频等二进制文件的具体变化

提交文件到仓库:

```bash
$ git commit -m "xxx" #本次提交的说明
[master (root-commit) d30cd93] xxx
1 file changed, 1 insertion(+)#一个文件被改动,插入一行内容
create mode 100644 readme.txt
```

commit一次可以提交多个文件,add也可以批量添加文件

## 修改

使用**git status**查看仓库状态

```bash
$ git status
On branch master
nothing to commit, working tree clean
$ git status
On branch master
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: readme.txt

no changes added to commit (use "git add" and/or "git commit -a")
```

已被修改但还未提交

**git diff**查看具体修改:

```bash
$ git diff readme.txt
diff --git a/readme.txt b/readme.txt
index 4486c34..5acf951 100644
--- a/readme.txt
+++ b/readme.txt
@@ -1 +1,2 @@
gitbash
+gitbash2

$ git add readme.txt

$ git commit -m "modified"
[master 70e6db6] modified
1 file changed, 1 insertion(+)
```

### 版本控制

从commit恢复

**git log**查看历史记录:
会给出用户名,邮箱,修改时间,提交的说明

当前版本:`HEAD`,上个:`HEAD^`,上上个:`HEAD^^`依次类推

往前10个版本:`HEAD~10`

版本回退:

```bash
$ git reset --hard HEAD^
HEAD is now at 70e6db6 modified
```

git log后可以看到最新的版本记录已经没了(其实是指针指向变化了)

要想恢复回来就要知道版本的commit id(使用git reflog)

```bash
$ git reflog
70e6db6 (HEAD -> master) HEAD@{0}: reset: moving to HEAD^
3185d16 HEAD@{1}: commit: modifiled again
70e6db6 (HEAD -> master) HEAD@{2}: commit: modified
d30cd93 HEAD@{3}: commit (initial): xxx
$ git reset --hard 3185d16
```

工作区就是电脑目录,版本库为.git目录(一般默认隐藏)

版本库中有暂存区stage和自动创建的分支master

git add是将文件修改添加到暂存区,git commit是将暂存区的所有内容提交到当前分支,全部提交后暂存区为空

git追踪的是修改,每次修改不用git add则不会加入commit中

### 撤销修改和删除

```bash
$ git checkout -- filename#丢弃工作区的修改
```

(1)修改后未add,则回到和版本库一样的状态

(2)修改后add但没有commit,则回到add后的状态

撤销add到暂存区的修改:

```bash
$ git reset HEAD readme.txt
```

再丢弃工作区修改

如果已经commit:回退版本(前提是还没提交远程仓库)

### 删除文件:

`git status`会告知哪些文件被删除了,若要从版本库中删除则`git rm <filename>`,并`git commit`

如果误删则撤销:`git checkout -- <filename>`,前提是已经提交到了版本库

## 远程仓库 github

本地仓库和github仓库传输通过ssh加密

创建ssh key:

```bash
ssh-keygen -t rsa -C "[email protected]"
```

在用户主目录创建了.ssh文件夹,且里面有id_rsa(私钥),id_rsa.pub(公钥)

然后打开github,进入Account settings的ssh keys页面,Add SSH Key,粘贴id_rsa.pub内容,点击Add Key

将本地库与远程库关联:

```bash
$ git remote add origin [email protected]:yourname/firstgit.git
```

远程库默认叫origin

推送:

```bash
$ git push -u origin master
```

```bash
查看远程库信息:
git remote -v
删除远程库:
git remote rm xxx
#此处的删除是本地与远程解绑,物理删除要到github删除
```

克隆远程库到本地:

```bash
git clone [email protected]:yourname/xxx.git
```

 

标签:复健,HEAD,git,add,使用,readme,commit,bash
From: https://www.cnblogs.com/ziggystardust-pop/p/17056365.html

相关文章

  • Git统计代码修改行数
    通过Git的命令可以统计自己在一段时间内的代码更改数量,具体代码如下:根据用户名来统计gitlog--author="username"--pretty=tformat:--numstat|\awk'{add+=$1;su......
  • 如何使用 ST05 事物码,快速找到访问指定数据库表的 ABAP 代码试读版
    在实际项目开发过程中,ABAP顾问可能会经常接到这类需求:调研SAP标准产品某个功能的具体实现位置,在此基础上做增强开发。比如下图是SAPCRM产品主数据管理应用的搜索页......
  • Badger简单使用
    Badger简介badger是dgraph开源的LSMTree的KV引擎,它相比leveldb有KV分离、事务、并发合并等增强,是go生态中比较生产级的存储引擎了。文档:​​https://dgraph.io......
  • 学会使用 SAP ABAP Application Log 在代码里添加应用日志记录功能试读版
    笔者在知乎上回答了一个关于SAP系统权限管控的问题:SAP有没有办法可以跳过权限测试function?在问题的回答里笔者提到:如果是SAPABAP系统,并且用户具有开发权限,那......
  • SAP ABAP 一个有用的程序正确性辅助工具,Checkpoint group 的使用方法介绍
    本教程前一篇文章介绍的内容:74.学会使用SAPABAPApplicationLog在代码里添加应用日志记录功能有读者向我提问:一个ABAP程序植入了应用日志的记录功能之后,有没有......
  • 【建站系列教程】3.2、ajax使用精讲
    【建站系列教程】3.2、ajax介绍​​ajax的应用场景​​​​1、form表单实现无跳转提交​​​​2、ajax局部刷新代替刷新网页​​​​ajax的通俗介绍​​​​ajax的基本用法......
  • Vue中使用前端形式过滤已返回到数据列表
    已经返回到列表,通过前端的搜索框再次过滤,而不走查询api。returngetDeviceListByCellIdApi(this.params).then((res)=>{//res.resultsconsole.l......
  • JMeter_基本逻辑控制器使用
    解压jmeter压缩包后,进入路径apache-jmeter-5.2.1\bin, 双击执行“jmeter.bat” 文件即可启动jmeter程序。 为了方便每次启动可以右键发送快捷方式到桌面,每次桌面双击即......
  • CobaltStrike malleable C2 的使用
    malleable的含义  英文MalleableCommandandControl  可扩展的命令和控制  MalleableC2是一种特定的语言,主要用来控制“CobaltStrikeBeacon”攻击载荷中......
  • 关于GIT使用的扫盲知识
      关于GITa)     什么是git用于团队里各成员协同开发项目的一个代码管理工具。与之SVN、微软的TFS是同一类东西。而git是时下最火的代码管理工具。b)   ......