Git安装和使用

(git是一个免费、开源的版本控制软件)

目的:通过git管理托管项目代码

下载安装:

  1. 下载地址:Git - Downloading Package,选 64位
  2. 双击安装

1、Git工作流程:

2、Git初始化及仓库创建或操作

(1)基本信息设置:

  • 设置用户名:
git config --global user.name ‘xiao-creat’
  • 设置用户名:
git config --global user.email ‘xxxxxxx@qq.com’

补充:上述设置在github仓库主页显示谁提交了该文件

           忘记命令时可以双击Tab键来进行提示

(2)初始化一个新的Git仓库:

  • 创建test文件夹

mkdir test

  • 进入test目录

cd test

  •  文件内初始化git(创建git仓库)

git init

(3)向仓库中添加文件

  • 创建一个php文件

touch a1.php

  • 查看文件状态(要经常使用)  Untracked files

git status

  • 将php文件添加到暂存区-->查看状态为new file:  a1.php

git add a1.php

  • 将文件从暂存区添加到仓库中,每一次commit都会有一个commitId产生,用来对版本进行管理

git commit -m ‘add a1.php. Here is the description ’

(4)修改仓库文件

1、进入编辑界面--->esc:wq保存

修改完文件后正常操作是进行第四步,将文件添加到暂存区;但是当你不想将修改后的文件添加到暂存区时可以执行第五步。

vi a1.php

2、查看输入的内容

cat a1.php

3、查看文件状态-->变成了modified:   a1.php

git status

4、将修改后的php文件添加到暂存区

git add a1.php

5、丢弃刚刚在文件中添加的内容,撤销工作区修改,回到初始状态,就可以不用进行第四步操作

git restore a1.php

6、当工作区文件很多时,直接用点将所有文件添加到暂存区

将文件添加到暂存区后正常操作是进行第七步,将文件提交到仓库;但是当你不想将暂存区文件进行提交时可以进行第八步

git add .

7、提交文件

git commit -m ‘第一次通过git修改文件并提交到仓库’

8、

git reset HEAD a1.php                //回到暂存区的最新版本。或git restore --staged a1.php

git restore a1.php                       //将修改拉回到工作区,把工作区的内容清空

(5)版本查看与切换

1、查看提交信息,例如有两次提交

当有回退操作时,最新提交的commitId将会被覆盖

git log

2、简化信息显示

git log --pretty=oneline

3、回退到上一个版本,HEAD^^回到上上次

git reset --hard HEAD^

4、显示所有的操作次数,包括新提交的版本或回退等操作

git reflog

5、回到commitId对应的操作

git reset --hard cb72084

(6)删除仓库文件

1、删除a1.php

rm -rf a1.php

2、从git中删除文件

git rm test.php

3、提交文件

git commit -m ‘提交描述’

补充:git status  

含义

No commits yet

表明未对工作区进行任何操作

Untracked files

未被追踪的文件,表明新创建的文件还没有add到暂存区

new file:  a1.php

表明将当前文件add到暂存区

modified:  a1.php

表明对文件进行了修改,之后可以add到暂存区

nothing commit

表明将暂存区的文件commit到仓库,此时工作区回到初始状态

3、分支介绍

        每一次提交,都会有一个 commitID产生。当在旧版本的基础上进行新版本的开发,然后新版本成为下一个新版本的旧版本,依次类推,并将每次开发的新版本进行提交,这样就可以将每次的提交用线连起来,就会很连贯。然后就可以根据commitID来追踪每次的版本开发,这个思想也是C/C++中指针的概念。

git reset --hard commitID     //根据ID切换不同开发版本

HEAD特殊表示,表示当前最新版本的commitID,也就是最新的指针指向

如果说内容已经add到暂存区,此时想要撤销的话,就需要先回到最新的一个commitID上
git reset --hard HEAD^       //回退到上一个版本,HEAD^^回到上上次

Master分支是主分支,也是git为你默认创建的分支

HEAD头指针指向的分支,而分支又指向的是最新提交的commitID

实际开发中不在master分支进行开发,而是从master分支中拉出多个分支来进行开发

4、分支详解

  1. (1)从主分支master上切出一个开发分支,比如叫“dev_xiao”

git checkout -b dev_xiao

运行完上面一句话之后,表示你现在所有的操作都在dev_xiao这个分支上进行 

 在dev_xiao分支上进行add和commit之后查看日志,主分支进行的操作也可以看到,如下:

 (2)查看当前所有的分支情况,前面*号表示当前所在分支为dev_xiao

git branch

 

 (3)切换回主分支

git checkout  master

注意:当切换回主分支时,dev_xiao这个分支所做的操作都会被删除,反之亦然。也就是说在不同的分支上进行版本管理,只有在自己的分支上才会生效。

 (4)删除分支

git branch -d dev_xiao

运行上面删除语句时,会遇到错误如下图所示,:

出现错误原因你现在所处的分支是dev_xiao,但你想要在dev_xiao分支上删除dev_xiao分支是不可能的,想要删除必须在其他分支上进行删除 :

 

但此时又会出现当前dev_xiao分支没有被合并的错误,这时想要删除只能进行强制删除:

git branch -D dev_xiao

 (5)分支合并(将dev_xiao开发的版本与master分支合并之后才可进行上线发布)

git merge dev_xiao      //需将分支切到主分支。

 当合并完分支之后,可以使用  git branch -d dev_xiao  删除分支,就不会出现分支未合并错误

(6)分支冲突

当创建了两个分支后,比如dev_xiao和dev_zhang分支,两个分支均进行了一定操作最后commit提交,然后切到master分支对上述两个分支依次进行合并,此时会出现分支冲突问题,如下图:

 解决合并冲突,手动删除内容,然后再进行add和commit:

5、git config 和 配置别名

(1)查看配置信息

git config -l

上面图片所有的信息实际上都是整合出来的,包括仓库级别、全局级别、系统级别

(2)仓库级别:

        配置位置:

        查看配置:

git config --local -l

        增加配置、查看配置、编辑配置、删除配置同global 一样

(3)全局级别:

        配置位置:

       增加配置:

git config --global user.name ‘xiao-creat’

git config --global user.email ‘xxxxxxx@qq.com’

        查看配置:

git config --global -l

        编辑配置:

git config --global -e

        删除配置:

git config --global --unset user.name

(4)系统级别配置位置:

        配置位置:git安装目录/etc

        查看配置

git config --system -l

        增加配置、查看配置、编辑配置、删除配置同global 一样 

(5)配置别名,简化命令

git config --global alias.st status       表示用st代替status

6、打标签和忽略文件

打标签:由于commitId不容易记住,就可以用一种独特的方式去记住每个版本,类似于百度的IP110.242.68.3和域名www.baidu.com的区别,这就是打标签的意思。

IP 110.242.68.3   --->   域名www.baidu.com

commitID  as2731aa   --->  标签v1

 (1)将最新版本的commitId对应上v1

git tag v1

 (2)查看当前仓库的标签列表

git tag

 

(3)给某一commitId打标签

git tag v1.1 e5356cbb

 

(4)在打标签时添加说明

git tag v1.2 -m "这是第三个标签"

(5)删除标签

git tag -d v1.2

忽略文件: 在工作区内有一类文件只允许程序员自己查看,不想被git管理,就可以选择忽略文件

(1)在工作区新建.gitignore文件

(2)找到官方网址,选择对应的忽略文件,例如我想忽略.class文件  

GitHub - github/gitignore: A collection of useful .gitignore templates

(3)将忽略文件内容进行复制

(4)查看状态,发现出现了  .gitignore  ,此时.class已被忽略,但是因为.gitignore文件并没有被忽略,此时可以将其进行add和commit即可。

 7、本地仓库和远程仓库

使用远程仓库的目的:备份,实现代码共享集中化管理

将本地仓库同步到git远程仓库流程图:

1、将本地仓库上传到远程仓库

(1)在远程仓库github上创建一个对应的项目,比如test

(2)让本地仓库与远程仓库作关联

首先需要在自己本地增加一个安全SSH-Key,如果已有,直接进行push即可:

ssh-keygen -t rsa -C "xxxxxxxxx@qq.com"

然后将生成的公钥复制到github上: 点击github头像,选择settings,点击SSH and GPG keys,选择SSH keys,点击New SSH key。

最后:

git remote add origin git@github.com:xiao-creat/test.git

 (3)查看远程仓库信息

git remote -v

(4)将本地仓库代码推送到远程仓库

git push -u origin master

 

(5)查看本地仓库是否有远程仓库

git remote

(6)当远程仓库文件有所改变时,即远程仓库和本地仓库版本不一致时,就要进行代码合并pull,之后再进行push:

git pull

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值