Git的学习使用记录

前言

Git的工作介绍:

工作区:存放本地项目的地方

暂存区:临时存放改动的地方

git仓库:最终版本的放置

 

Git工作流程:

1.在工作区的目录添加,修改文件

2.将需要进行版本管理的文件放入暂存区

3.将暂存区的文件提交到git仓库

 

Git的文件管理状态:

1.已修改(modified)

2.已暂存(staged)

3.已提交(committed)

4.未跟踪(untracked)(就是未放入暂存区的文件,放入暂存区的都被跟踪了)

 

未跟踪的文件标红色,暂存区的文件是绿色

 

1.在磁盘某处创建文件夹,作为仓库来存储git项目

2.在新建的这个文件夹中右键,git bash here

3.先初始化一下这个仓库文件夹

 $  git init

就会生成一个隐藏的.git文件夹

4.设置用户名和用户邮箱

$  git config --global user.name 'xxxx'

$  git config --global user.email 'xxx@xxx'

5.创建文件/文件夹

$  touch/mkdir filename

6.删除本地文件

$  rm filename

7.删除git中暂存的文件

$  git rm filename

8.查看git文件夹已设置信息

$  git config -l

9.查看本地文件状态

$  git status

10.查看提交日志记录

$  git log

 

 

其中展示了

 

(1)第一条commit的括号中显示的是:当前本地所处分支位置,远程操作对应的位置,最近一次commit的来源位置

 

(2)提交者及时间

 

(3)对此次提交的说明

 

 

 

11.如果在文件在工作区修改了,已经提交到暂存区,git status之后会提示使用哪个覆盖哪个

$  git add filename 是新文件覆盖旧文件

$  git checkout --filename  是旧文件覆盖新文件

12.执行带有--amend选项的commit提交命令,git就会“更正”最近一次的提交

$  git commit --amend filename

13. 上传当前项目所有内容到本地仓库暂存区

$ git add .

14.提交代码到本地仓库

$ git commit -m "备注"

15.拉取远程仓库代码,不然很有可能把远程仓库代码覆盖掉,特别是团队协作开发的时候要特别注意。第一次可以不用执行git pull,但团队开发时,推送代码(push)一定要先执行拉取代码(pull)【在拉取代码(pull)时,可能会遇到代码冲突(merge)的问题,遇到冲突先把冲突解决了在重新推送(push),特别是团队协作开发时,特别容易发生代码冲突。】

$ git pull

16.解决代码冲突

$ git merge

17.git 提交文件要提交3次,如图

 

 git add 把文件从工作区提交到stage(暂存区)

 git commit 把文件从stage(暂存区)提交到master(当前分支)

 git push 把文件从master(当前分支)提交到github

 18.关于已commit的文件撤销方法

$ git reset HEAD^    (reset用于本地commit文件的撤销)

$ git revert HEAD    (revert用于pushed到远程文件的撤销)

19.关于强制切换当前所在分支位置

$ git branch -f A B (强制从A位置切换到B位置)

 

 

 

 

实际操作:

1.在桌面新建一个空白文件夹来存放与项目相关的文件,并且右键git bash here

2.初始化一下这个文件夹 git init

3.clone一下github上存放此项目的地址 保持同步  git clone xxxxxx

4.输入指令“ll”可以查看当前文件夹下的文件目录

5.进入目录

(1)创建新分支(此时用git branch是没有返回值的)

--创建master分支:git checkout -b master

--在这个分支下创建一个readme文件

--提交任意一个文件(一般是readme):git commit  readme.md  (如果不commit,是无法新建分支的,此时再用git branch就可以看到分支了,此时可以新建分支)

--把想要同步到github的分支通过指令:git push -u origin 分支名    同步到远程的github上

(2)提交

--在本地修改好文件之后,把文件(夹)push到github:先git add 再 git commit -m “备注” 最后 git push

(3)在本地的其他分支

在本地的其它分支似乎无法直接提交到远程(可能是我操作有误),需要将本地新的分支下写好的内容覆盖本地原分支的内容,完成本地内容的更新之后,再从本地的原分支提交给远程对应分支

(感觉自己的这步操作绕弯子了,日后弄清楚了再改)

关于覆盖的方式,有merge和rebase两种,目前我个人倾向于使用rebase

merge构造网状交叉历史提交记录,rebase提供线性历史提交记录

如图(参考了git的学习网站 https://learngitbranching.js.org/?locale=zh_CN

 

 

 

 

 

 

 

 

 

 

 

 

 

 

参考文章地址:https://www.jianshu.com/p/de4126828048 

https://www.cnblogs.com/tu-0718/p/10973045.html

posted @ 2020-01-19 15:04  -Ruirui-  阅读(111)  评论(0编辑  收藏  举报