简单学习git,让你在工作中得心应手

首先是git的简单下载

官网下载:https://git-scm.com/download

1.安装完git后操作

1.全局配置

$ git config --global user.name "用户名"
$ git config --global user.email "邮箱地址"
#建议用户名和邮箱地址写GitHub账号

2.建立仓库

当我们需要让Git去管理某个新项目/已存在项目的时候,就需要创建仓库了.

可以在现有文件目录下创建仓库,也可以新建

mkdir 文件名  #创建目录作为git仓库
cd 文件名     #进入该目录
git init     #git仓库进行初始化,让git知道要管理这个目录

执行以上命令成功后,该目录下就会出现一个名为.git的隐藏文件夹(不要随意)

2.git常用指令操作

git提交文件或代码,首先要提交到缓冲区,再提交到仓库

git status :查看当前状态

git add 文件名:提交文件到缓冲区

git commit -m "注释内容" -->将缓冲区的文件提交到版本库(注释内容很重要,代表当前你提交的东西和之前有什么不一样,回退版本时可以用到)

3.版本回退

查看需要回退的版本需要通过查看日志

3.1查看日志指令:

git log [option]

注:

3.2为日志指令做别名

#别名化git log等选项,也就是说当我们在输入git-log时执行的指令就是git log --pretty=oneline --all --graph --abbrev-commit指令
git-log='git log --pretty=oneline --all --graph --abbrev-commit'

3.3版本回退指令(回到过去):

注:

3.4回退到回退之前(回到未来)

当版本回退后,想要回到版本回退之前,那么想再次通过git log --pretty=oneline是不行的(版本回退之前的版本在该日志中已经消失了)

那么这时候就需要用到指令git reflog

4.github等线上仓库的使用

4.0与远程库进行对接

4.1基于http协议

4.2push指令

首先前面提到,提交到本地仓库的步骤是:

git add 文件 -----> 缓冲区 -----> git commit -m "注释" -----> 本地仓库

现在提交到线上仓库需要在加一步:

git push 将本地仓库文件提交到线上仓库

git push 远程仓库名 本地分支名(将本地仓库的内容推送到远程仓库中)

4.3pull指令

git pull [remote name] [branch name]

git pull指令是拉取线上仓库的文件到本地仓库

总结:每天上班第一件事就是用git pull拉去线上仓库的文件,每天下班最后一件事就是git push 提交本地仓库的文件(其他时间可以不提交)

4.4fetch指令

远程分支和本地分支一样都可以合并,只是先需要把远程仓库的更新都下载到本地,在进行操作

fetch指令:git fetch [远端名称] [分支名]

4.4(推荐)基于ssh协议

首先在Github使用ssh协议需要先生成公私钥对指令(这个需要安装openSSH来生成),GitHub需要公钥

安装完后,在git控制台中执行ssh -keygen -t rsa -C "GitHub的注册邮箱"

步骤:

实际操作:


然后后续的步骤和http协议一致,只是是git clone ssh地址(git@github.com:jxnyzhnb/jxnyzhnb.git)

4.5总结


总结:推荐使用ssh协议进行和线上仓库的连接,一位http协议连接的话,可能要在每一个git项目中配置账号密码,因为可能出现403错误(需要鉴权).

需要修改.git目录下的config文件中的

url = https://github.com/jxnyzhnb/jxnyzhnb.git ----->url = https://用户名:密码@github.com/jxnyzhnb/jxnyzhnb.git

5.分支操作

在之前回退版本和回到未来时,我们可以看到所有的提交和回退记录都会有记录,Git会把他们传承时间线,形成类似于时间轴,该时间轴就是一个分支,也叫做master分支.

为了满足团队协作开发,我们需要使用分支来完成一些开发任务.

5.0分支的种类

由下图可以看出,当创建该项目是将该项目分为多个分支,当项目完成后需要将各个分支进行合并,将各个分支合并到主分支(master分支)中.

5.1分支相关的指令

5.2各分支之间互不影响

比如以下操作:

当前分支是master分支:

这是在该分支下的readme.txt的内容:

现在切换到jxnyzhnb分支:

修改readme.txt文件内容:

保存后,在该分支中将该文件提交到本地仓库(一定要谨记,不要忘了该操作,不然没用)

再次切换到master分支:git checkout master

查看readme.txt:

(谨记)注:这说明各个分支修改文件后提交到本地仓库,那么只会改变这个分支中的文件,对其他分支不影响

但是,要谨记,在该分支中修改了一个文件,一定要提交到本地仓库,不然在其他分支中的该文件也会被修改.

5.3各分支的合并

前面讲了,master分支的readme.txt(该分支的readme.txt 并没有提交到仓库)和jxnyzhnb分支的readme.txt(已提交到仓库)不一样.


现在将两个分支合并

那么这时候如果将在master分支下将jxnyzhnb分支合并,那么master分支将会添加master没有的内容但是jxnyzhnb有的内容

比如两个不是主分支的分支也可以合并,但是当两个分支之间有相同的文件但是不同的内容,那么合并会出冲突。

这时候可以这样解决:

5.4删除分支

git branch -d 分支

注:当要删除一个分支时,一定要退出要删除的分支,不然会删除失败

6.解决冲突

6.1合并冲突

当我们同时修改了同一文件的同一行(就是当一个人先修改了一个文件的一行并push到远程仓库,但是你也在自己本地修改了这个文件的那一行,那么当你想push到远程仓库时,会发生报错,因为发生冲突,这时候需要线pull文件,然后会出现merge错误,就是因为文件内容冲突,就会出现下面的代码样式,这时候你需要在本地解决冲突(先把git生成的东西去掉,在修改称自己想要的代码就行了)),然后再次push到远程仓库就行


<<<<<<< HEAD  //git生成的HEAD指向的是当前分支
gg
gbf
=======    //git生成的
abczh
fss    
>>>>>>> ec83f5d538076d3e19f4ef6b336eedfdd51105a0   //git生成的

这时候可以更修改该代码的人进行商量,是否删除哪一个部分或者都不删除,就只删除<<<<<<< HEAD和>>>>>>> jxnyzhnb(这两个是git自带的),那么再次将该文件进行push就行了

git push --set-upstream origin 分支名(当前分支在远程分支对应的名称)

当当前分支在远程分支中并没有该分支,那么远程分支就会创建该分支.

7.忽略文件

当我们再提交整个分支时,我们不想提交一些目录(比如css,js等),那么我们可以在该仓库目录下新建一个以.gitignore为后缀的文件(用命令行touch .gitignore创建),在里面可以定义规则 (git默认不会提交空文件夹)

常见的规则:

/js/ #忽略整个文件夹(这是.gitignore文件中的注释)
*.zip #忽略所有以.zip为后缀得文件
/css/sa.css  #忽略具体的文件
!index.js #不过来index.js文件

自定义的.gitignore

#提交时忽略js,css目录(这是.gitignore文件中的注释)
/js/
/css/

8.Idea集成git

注:在idea中切换分支之前切记要把原来分支新增加的代码先提交到本地仓库,不然切换分支后原分支新增的代码就会消失

可以把idea的终端变成git bash(原来是cmd),在设置中的tool(工具)找到终端(Terminal),设置shell的路径为git中的bash.exe的路径(比如D:Gitbinbash.exe)

展开阅读全文

页面更新:2024-03-25

标签:得心应手   分支   指令   仓库   这时候   版本   操作   代码   简单   文件   目录   内容

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top