13 Commits

Author SHA1 Message Date
dbda7e15b0 Hello world initilized 2024-08-18 23:13:18 +02:00
4e8d0b6f8c rename test 2024-08-18 22:49:37 +02:00
11474a652c get old welcome.txt 2024-08-18 22:49:12 +02:00
756beab203 update 2.7.2 2024-08-17 21:49:48 +02:00
711087a041 delete trash files.(using git add -u) 2024-08-17 21:45:46 +02:00
cb4892dd9f add 2.7 notes 2024-08-17 21:34:58 +02:00
e073cddd87 update 2.6 notes 2024-08-17 21:25:13 +02:00
d68790956e init 2.6 notes 2024-08-17 21:00:23 +02:00
4bdf9b82bc update 2.5 notes 2024-08-16 15:40:37 +02:00
dd95d391fb Merge commit 'c4dea21' 2024-08-16 10:51:02 +02:00
c4dea21d20 commit in detached mode 2024-08-16 10:42:17 +02:00
c4332b7c93 1040 test 2024-08-16 10:40:45 +02:00
90fcb4ac61 add 2.5 notes 2024-08-16 10:39:20 +02:00
10 changed files with 148 additions and 0 deletions

View File

1
hack-1.txt Normal file
View File

@@ -0,0 +1 @@
hello.

42
notes/2.5_git_checkout.md Normal file
View File

@@ -0,0 +1,42 @@
## 2.5 Git Checkout
### 2.5.1 HEAD reset = checkout
查看当前的branch
```bash
git branch -v
```
checkout到commit的父亲使得head指针指向父提交而不是branch
```bash
git checkout <commit>^
```
在detach模式下addcommitHEAD都是指向最新的提交
之后再checkout到原来的分支detach模式下的操作记录都会丢失
### 2.5.2 git merge
```bash
git merge <commit>
```
<commit>提交合并到当前分支,这样做就可以把detach模式下的提交merge到当前分支上
合并以后的提交将有两个父提交
### 2.5.3 git checkout
```bash
用法一: git checkout [-q] [<commit>] [--] <paths>...
用法二: git checkout [<branch>]
用法三: git checkout [-m] [[-b|--orphan] <new_branch>] [<start_point>]
```
第一种用法的`<commit>`是可选项如果省略则相当于从暂存区index进行检出。reset的默认值是 HEAD而checkout的默认值是暂存区。
reset的目的是用HEAD重置暂存区checkout是想暂存区中覆盖工作区的内容
第二种用法就是切换分支
第三种用法是新建分支

34
notes/2.6-git_stash.md Normal file
View File

@@ -0,0 +1,34 @@
## 2.6
### 2.6.1
用来查看stash列表
```bash
git stash list
```
恢复进度
```bash
git stash pop
```
```bash
git commit -m "message" # 执行提交
git status -s # 查看状态
```
```bash
git reset --soft HEAD^ #反悔提交 将HEAD指向当前提交的父提交
git reset HEAD a/b/c # 将a/b/c目录下的文件撤出暂存区
git reset 将所有的文件从stage中撤出
```
```bash
git checkout -- welcome.txt # 清除welcome.txt的改动
git clean -nd # 删除本地多余的目录和文件列表
git clean -fd # 真正删除
```

28
notes/2.7-git_basic_op.md Normal file
View File

@@ -0,0 +1,28 @@
## 2.7 Git Basic Ops
## 2.7.1 git tag
给当前的进度打个标签
```bash
git tag -m "some message" <version-string>
git describe # 查看标签
```
## 2.7.2 Git 删除文件
git
```bash
rm *.txt
git ls-files #本地删除不是真的删除,暂存库中还在,也就是删除的这个命令没有被添加到暂存库中
```
```bash
git rm welcome.txt hack-2.txt #将文本文件从git中删除
git status
git ls-files --with-tree=HEAD^ # 父节点中的文件还在
```
```bash
git add -u #将版本库中的本地文件的变更记录到暂存区中
```

View File

@@ -1 +1,3 @@
welcome
1039
1539

View File

27
src/Makefile Normal file
View File

@@ -0,0 +1,27 @@
OBJECTS = main.o
TARGET = hello
all: $(TARGET)
$(TARGET): $(OBJECTS)
$(CC) -o $@ $^
main.o: | new_header
main.o: version.h
new_header:
@sed -e "s/<version>/$$(git describe)/g" \
<version.h.in> version.h.tmp
@if diff -q version.h.tmp version.h > /dev/null 2>&1; \
then \
rm version.h.tmp; \
else \
echo "version.h.in => version.h" ; \
mv version.h.tmp version.h;\
fi
clean:
rm -f $(TARGET) $(OBJECTS) version.h
.PHONY: all clean

8
src/main.c Normal file
View File

@@ -0,0 +1,8 @@
#include "version.h"
#include <stdio.h>
int main(){
printf("Hello, world. \n");
printf("version: %s. \n", _VERSION);
return 0;
}

6
src/version.h Normal file
View File

@@ -0,0 +1,6 @@
#ifndef HELLO_WORLD_VERSION_H
#define HELLO_WORLD_VERSION_H
#define _VERSION "old_practise"
#endif