Git基础使用指北

Software is like sex: it's better when it's free. —— Linus Torvalds

前情须知 -O-

工作流

首先要明确的是Git的工作流程,你使用Git时,用了三个不同的区域对你的代码进行管理。
1.工作区(workshop):就是你当前写代码的那些文件,具体就是你当前正在编辑的项目。
2.缓存区(Index):是一个临时区域,保存你的临时改动。
3.仓库区(HEAD):你最后提交到的区域。
Git基础使用指北_第1张图片
一般的流程:(工作区)编码 → 添加代码到(缓存区)→ 提交到仓库区(HEAD)→ 推送到远程仓库


基本使用

init 初始化

当我们要使用git对项目进行管理的时候,使用:

$ git init

就会自动进行相关的初始化操作,会在项目中创建隐藏的.git文件夹,里面有相关的配置信息。

add 缓存区操作

要Git对文件进行跟踪,这时文件就到了缓存区了,是相当于复制了一份,使用命令:

# 添加文件到缓存区
$ git add [文件名1] [文件2]
# 添加文件夹到缓存区
$ git add [文件夹]
# 添加所有文件到缓存区
$ git add .

执行了改命令后,Git就会跟踪你的文件的变化了,使用 git status 命令,就可以看到文件的状态了。

# 查看文件状态
$ git status
# 查看简洁的状态信息 short
$ git status -s

当然你也可以将缓存区的删除操作

# 停止追踪指定文件,该文件仍会保留在工作区
$ git rm --cached [file]

commit仓库区操作

使用git commit命令会将缓存区的操作,添加到仓库区,每次提交都要添加提交信息

# 将缓存区的文件提交到仓库区
#然后会打开vm编辑器要求输入提交信息
$ git commit
# 简化,提交和添加提交信息
$ git commit -m '提交信息'
# 跳过添加到缓存区,直接将上一次提交后的修改进行提交
# 所有已经跟踪过的文件暂存起来一并提交
$ git cmmit -a 

当一个文件已经被提交后,要提交删除该文件的记录,使用$ git rm [文件名]命令,工作区的对应文件会被删除,删除记录会添加到缓存区,然后可以commit

remot远程操作

Git的操作基本上都是本地进行的,但是若是要多人协助,保存/开源到Gitee或Github上就要进行远程操作了。

# 添加一远程仓库,并未之命名
# 当你在github中新建仓库后,它就会让你运行该命令
# 让你的本地仓库和远程仓库关联,它可以添加多个
$ git remote add [远程仓库命名] [url]
$ git remote add origin https://gitee.com/mashiro-xxx/xxxx.git
# 查看所有远程仓库
$ git remote -v
# 有远程仓库后,将新分支上传
$ git push -u [远程仓库] [分支]
$ git push -u origin master
# 将本地分支上传
$ git push [远程仓库名] [分支名]
$ git push origin master
# 直接推送到远程仓库
$ git push
# 暴力推送到远程仓库,不理会冲突
$ git push --force
# 将远程仓库的代码下载到本地
# 此操作并不会改变本地仓库
# 而是,会在本地有一个远程仓库的分支,如origin/master
$ git fetch [远程仓库]
# 将远程仓库拉取到本地,并合并到本地操作
# 其本质是 fetch 后将,本地分支与远程分支merge
$ git pull [远程仓库] [分支]

回退操作

使用Git不仅为了方便版本管理,当然也是为了以备不时之需,所以也是回退代码的可能也是很高的呢。
注:执行回退操作前,切记要将当前工作区内容提交

# 撤销工作区指定文件的操作,撤销至add时的状态
$ git restore [文件]
# 将缓存区的文件回退至工作区
$ git checkout [文件]
# 将缓存区的全部文件回退到工作区
$ git checkout .
# 将工作区回退至上一次commit
$ git reset --hard
# 回退当前分支的HEAD为指定commit
# 同时重置暂存区和工作区,与指定commit一致
$ git reset --hard [commit]

进阶操作

branch分支操作

分支就像是同一个变种衍生出来的各种变种,每个分支可以有不同的变异方向。不过在Git中分支是可控的,你可以增加,合并,删除。
Git基础使用指北_第2张图片

# 查看当前所有分支
$ git branch
# 新建分支
$ git branch [分支名]
$ git branch dev
# 且换分支
$ git checkout [分支]
$ git checkout master
# 新建并切换到新建的分支
$ git checkout -b [分支]
$ git checkout -b feature_x
# 删除分支,若没有有未被合并的内容,则无法删除
# 不能删除当前所在的分支,如要删除需切换分支
$ git branch -d [分支]
# 强制删除分支
$ git branch -D [分支]
# 当前所在分支与指定分支合并
$ git merge [分支]
$ git merge dev

other其它操作

# 查看所有提交的记录
$ git log
# 暂时将未提交的变化保存
$ git stash
# 暂时将未提交的保存的变化恢复
$ git stash pop

你可能感兴趣的:(gitgithub)