Git-udemy

 

1.Git:version control system

  ~check point(version one; version two; version three)

 

2.开创者:Linus Torvalds:git and linux

 

3.有意的的part:

~听编剧的博客睡觉;用git来管理写作

~在Reddit上看到一个交响乐的作曲家的评论,用Git来帮助追踪大量的变化

 

4.Git 和Github

 

5.Git 设置用户名和邮箱

git config --global user.name "zhangsan"

git config --global user.email "xx@gmail.com"

相关:

git config user.name

 

6.下载软件 git;gitkraken

 

7.Git 命令行

open . ~打开图示的当前位置的文件夹

clear

touch purple.js ~创建文件

touch red.txt orange.py yellow.pdf

touch Pets/Horses/rocky.png

mkdir Plants ~创建文件夹,后跟文件夹名字

ls

ls -a

rm delete.txt remove.xls ~删除文件

rm -rf Plants

git --version

git add outline.txt or git add .

git status

git commit -m "begin work on chapter 1"

git log

git log --oneline

code . (快捷键打开vs code

编辑器)

:wq

git commit --amend

###########

git branch <branch-name>(创建了一个新的分支) (十分常见经常用)

git switch -c recentish-music(创建了一个新的分支)

git checkout -b silence(创建一个新的分支) ->创建的同时位于这个新的分支上

###########

git switch <branch-name> (在分支之间切换)(十分常见经常用)

git checkout <branch- name>(在分支之间切换)(十分常见经常用)

###########

git branch (查看有几个branch)

 

git branch -d DeleteMe (删除分支)

git branch -D DeleteMe (强制删除分支)

git branch -m 2000s(重命名分支)

q(逃离当前视图)

 

8.git repo ~git仓库

 

9.常规流程

cd Destkop

mkdir MyFirstNote

git status

git init

 

10.git init十分重要  ~生成.git文件

有了git init才能有历史记录;如果删除了当前库,要重新init

 

11. git add十分重要

~每一个新的文件,都需要git add 才能够变成跟踪文件

~常规流程:mkdir outline.txt(可以用vscode 编辑)

git status 会显示一个未被跟踪

git add outline.txt or git add .

git status 显示为绿色

git commit -m "begin work on chapter 1"

 

12.https://git-scm.com/docs/git

 

13.git commit 原子化

 

14.直接git commit 没加-m

按i insert

输入commit内容如“fix typo in outline”

输入:wq退出

输入 git log 能够看到刚刚commit的内容和comment内容

 

15.git commit信息的编辑处理 (就vscode) --对于大型项目

步骤:

git config --global core.editor "code --wait"

修改一个文件然后git status

git add .

git status 测试

open vscode 

cmd + p

>code

选择shell command:indtal code command in path

安装成功后 git commit 在vscode 里面编辑

 

16.git log

有很多

有意思的是

git log --oneline (把comment内容的每个的第一行进行汇总)

 

17.如何在GitKraken里面添加到git stage并且commit

 

18.修改commit的内容

git commit --amend

 

19.

mkdir GitIgnoreDemo

cd GitIgnoreDemo

git status

git init

npm init

touchtouch index.js

touch secrets.txt

git status

git add .

git commit -m "start a new project"

npm install react (涉及到权限的问题)

sudo chown -R 501:20 "/Users/zhaoxue/.npm"

npm install react

touch .gitignore      (在这个文件里面写一些想忽略的文件)

如在.gitignore中添加了secrets.txt文件,则再对secrets.txt进行修改,也不会在commit中需要提交了。同时避免已经被跟踪:

git rm --cached secrets.txt
git commit -m "Stop tracking secrets.txt"

 

20.gitignore.io网站 --自动生成ignore文件

 

21.在非master的线上做一些测试性的代码

 

22.git的master 和github的main

 

23.master和head

head为表示当前所在位置

master是最一开始的起点

 

24.git branch --creating branches (非常有意思并且有意义!!!必看)

常用命令

git branch <branch-name>(添加branch)

git switch <branch-name> (在分支之间切换)

git commit -a-m "add two songs"(省去了手动执行 git add),和git commit -m无太多区别

 

开始了,从头创建一个文件

mkdir Branching

ls Branching

cd Branching

mkdir RoadtraipPlaylist

cd RoadtraipPlaylist

git init

git status

====第一次编写txt的内容

git add playlist.txt

git commit -m "add playlist header"

git log(Head -> madter) 

git status

===第二次增添txt的内容

git add playlist.txt

git commit -m "add two ABBA songs"

git log(Head -> master)

git branch

git branch oldies

git status

 git branch

git log(Head -> master, oldies)

git status

git switch oldsgsdg

git switch oldies

git status

git log(Head -> oldies, master)

git status

git add olaylist.txt

git commit -m "add two Gorage  Join two songs"

git log (第一条log是Head -> oldies)

git switch master

git log

 

 

新的方法 --创建一个新的empty的分支

修改一些txt

git log

git commit -a -m "add two songs"

git log

git branch georges

git log

git switch georges

修改一些txt

git commit -a -m "add some new songs"

git log

git switch oldies

git switch georges

删除txt里面的两行

git commit -a -m "remove two abba songs"

git emptyplaylist

git switch emptyplaylist

git log

git commit -a -m "empty out playlist"

git log

git switch master

git switch georges

 

25.git checkout vs git switch

常用命令

git checkout <branch- name>

 

git branch

git checkout oldies

git branch

git switch master

git switch -c recentish-music(创建了一个新的分支)

git switch sdfjsdkg

删一些txt的内容

git add playlist.txt

git commit -m "add 2 phoebe bridgers songs"

 

26.git重命名和删除 

====删除part====

创建一个新的文件deleteMe

git switch -c DeleteMe

git branch -d DeleteMe

git switch master

git branch -d DeleteMe

git branch -D DeleteMe

git branch(此时deleteMe已经被删除了)

 

====重命名part====

 git checkout recentish-music

git branch -m 2000s

git status

git log

git branch

 

27.branch excises

 创建branch的两种方式

转换branch的两种方式

删除branch

 

28.合并merge

方法一

git  switch master

git merge oldies

 

29.(第61课,非常有意思)

one.####

fast forward merge

 two.###

merge commit(no conflicts)

three.###

conflicts

 

30.git diff相关的命令 第七十二课,听完了,但是听的不是很懂

git commit -am "add red" 等同于 -a -m

git diff(工作目录中的文件与暂存区(Index)之间的差异)

git diff HEAD

git diff HEAD[filrename]

git diff --staged(较暂存区(也称为索引区)和最新提交(HEAD))

git diff --staged[filename]

git diff --catched

从第67开始倍速听了,可能听不懂

git diff master..odd-numbers(比较两个分支)

git diff 1970s current(比较两个分支)

git diff 1970s current queen.txt(就某一个单独的文件或固定的几个文件来,比较两个分支)

git diff commit1..commit2(比较两次commits;commit1处用彗星码代替)

git diff HEAD HEAD~1(显示当前版本与上一个版本之间的差异,以及上一个版本与上上一个版本之间的差异)

git diff HEAD~1(用于比较当前版本与上一版本之间的差异)

git diff 15db96011ee62521(比较当前工作目录中的文件与指定提交(commit)之间的差异)

 

31.git stash(以便稍后恢复到原始状态)(是一个非常有意思的功能)

git stash pop (删除stash中最近的更改)

git stash save(保存)

git stash apply(将最近的存储的工作目录和暂存区状态应用到当前分支,但并不删除这个存储)

git stash list

git stash drop stash

git stash clear

 

32.创建新仓库和新文件的基操

mkdir dairy

cd dairy

git status

git init 

touch dairy.txt

code . 

add somethingggggg

git status

git add dairy.txt

git commit -m "add diary file"

 

33.验证git stash基操(这个非常有意思哈哈!!!)

mkdir dairy

cd dairy

git status

git init 

touch dairy.txt

code . 

add somethingggggg i love my boss

git status

git add dairy.txt

git commit -m "add diary file" (i love my boss)

git switch -c truth

git branch

add somethingggggg. i hate my boss

git status

git branch

git diff HEAD

git switch master

git stash save(***)

add somethinggggg i love my boss

git status

git add .

git commit -m "add"

git switch truth(i hate my boss)

git stash pop(***)

git status

git add diary.txt

git commit -m "add"

git switch master

git switch truth 

 

34.git checkout 
git checkout <commit-hash>
将工作目录恢复到指定提交的状态

git checkout HEAD~1

git switch -

git checkout HEAD <file>

git checkout -- cat.txt dog.txt

 

35.git restore 

git restore <file-name> 恢复到最近一次提交的状态

git restore --source HEAD~2 dog.txt

git restore --staged <file-name>

git reset --hard 23234a6(当前分支的状态彻底重置为指定提交(commit)23234a6 的状态)

git revert <commit-hash>(用于创建一个新的提交,以撤销指定提交<commit-hash>引入的更改)

 

 

 

 

 

posted @ 2024-02-26 20:05  continentliang  阅读(2)  评论(0编辑  收藏  举报