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>
引入的更改)