使用github 托管代码简单使用教程--本地文件管理
- 1.基本概念
- 2.本地文件管理
- 2.1 git add
- 2.2 git status
- 2.3 git commit
- 2.3 git log
- 2.5 git reset --hard 版本回退
- 2.6 git reflog
- 2.7 git diff
- 2.8 git checkout --file 工作区文件恢复
- 2.9 git rm 删除版本库里的文件
廖雪峰老师博文学习笔记:https://www.liaoxuefeng.com/wiki/896043488029600/897884457270432
代码修改/新建进入远端服务器的流程:working directory->staging area->repository->remote repository
git 数据流:
1.基本概念
工作区(Workspace) | 本地一个用于当前文件操作的工作区 |
暂存区(Stage/Index) | 存放在“.git/目录下”的index文件(.git/index)中 |
版本库 | 工作区隐藏目录.git/,存放Git的版本库。 |
远程版本库 | 托管在服务器上的仓库,可与本地代码库建立连接 |
2.本地文件管理
git 比其他分布式管理系统优秀的原因是它管理的是修改。
2.1 git add
将文件加入缓存区(什么时候加的技巧没有掌握)
单个文件,多个文件,名字匹配文件,所有修改/未修改/删除的文件
git add A.txt
git add A.txt B.txt
git add A*
git add all # 可以提交未跟踪、修改和删除文件
git add . # 可以提交未跟踪和修改文件,但是不处理删除文件
两者都可以将工作区中所有未跟踪或者修改的文件添加到暂存区。(1).git add all无论在哪个目录执行都会提交相应文件。(2).git add .只能够提交当前目录或者它后代目录下相应文件。
参考博文:https://www.softwhy.com/article-8489-1.html
两次add 同一个文件后再commit,提交的是最新的修改文件。
2.2 git status
git status
查看当前的工作区和缓存区的状态,有没有文件被修改,新增,需要提交之类的。
2.3 git commit
Commit–提交,每一个提交可以被视为一个版本。每一次Commit时,作者、时间、注释及其之间的版本都会被记录下来,commit完暂存区被清空。
每当文件修改到一定程度的时候,就可以“保存一个快照”,这个快照在Git中被称为commit。一旦把文件改乱了,或者误删了文件,还可以从最近的一个commit恢复,然后继续工作,而不是把几个月的工作成果全部丢失。(廖老师)
每提交一个新版本,实际上Git就会把它们自动串成一条时间线。
git commit -m “提交注释:first commit/update xxx”
如果某次commit 之后,发现有新的改动需要提交到这个commit中,可以使用–amend
git add updatefile.py # 新修改的文件
git commit --amend # 将新修改的文件提交的最近的一个commit
随后会跳出提示修改提交信息的窗口,如果不修改提交备注信息,则wq退出即可提交成功。
amend 常用于修改已经提交的版本中的代码,如果是多步提交之前,可使用reset 将HEAD 移动回对应的版本,然后再提交修改。
注意:amend之后会产生新的版本号git log 看不出来,git reflog才能看的出来
2.3 git log
查看版本信息 ,命令输出信息中的commit 字段后跟着一个版本号。
git log
在Git中,用HEAD表示当前版本:
HEAD^ | 上一个版本 |
HEAD^^ | 上上个版本 |
HEAD~n | 上n个版本 |
不显示详细的提交信息
git log --pretty=oneline
图状显示
git log --graph --pretty=oneline --abbrev-commit
2.5 git reset --hard 版本回退
版本回退是本地代码管理的灵魂
git reset --hard 版本号 # 对应的策略
git reset --hard head^
版本号没必要写全,前几位就可以了.
2.6 git reflog
git reset 之后, git log不显示最新版本信息,使用git reflog查看历史命令,可以找到对应的版本号.
git reflog
2.7 git diff
对比文件差异
1.工作区Vs缓存区
git diff file_name // 对比工作区与缓存区file_name文件的差异
2.缓存区Vs上一次提交
git diff --cached file_name
3.工作区Vs上一次提交
git diff HEAD file_name
4.两次提交之间对应文件的差异
git diff 版本号1 版本号2 file_name // 对比两次提交相应文件的差异。
–号前后是对比对象吧
2.8 git checkout --file 工作区文件恢复
git checkout – readme.txt
让文件回到最近一次git commit或git add时的状态。
暂存区里有 未提交的readme.txt ,则将其恢复到工作区
暂存区里无 未提交的readme.txt ,则将版本库里的readme.txt 恢复到工作区
两个作用 | |
---|---|
1 | 丢弃工作区里的修改 |
2 | 恢复工作区误删的文件误删操作 |
git checkout 不带–,切换分支命令,后续讲解
2.9 git rm 删除版本库里的文件
将文件从版本库中删除
git rm test.txt
git commit -m “remove test.txt”
廖雪峰老师博文学习笔记:https://www.liaoxuefeng.com/wiki/896043488029600/897884457270432