什么是Git

Git(读音为/gɪt/。)是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。[1] Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

基本的使用

一、将文件添加到暂存区,再提交到本地仓库


初始化一个本地版本库,执行一次即可,后面不用再执行
git init


设置用户名和邮箱(全局)
git config user.name "用户名"
这个位置

git命令使用_github

 

git config user.email "xxxxxx@qq.com"
就是github绑定邮箱

创建一个文件
touch ai.txt

查看状态
git status

git命令使用_ide_02

将该文件添加到暂存区,然后再查看状态:
git add ai.txt
如下图示就是文件到了暂存区了

git命令使用_远程仓库_03

提交到本地版本库中
附:
1)-m后跟注释内容
2)可以 直接 在后面跟上文件,表示把该文件提交到本地版本库(不推荐)
3)不跟任何文件名称,表示把当前所有暂缓区中的内容都提交到 本地版本库 中
下面两种写法都可以,这里用的后一中
git commit -m "提交ai.txt文件试试" ai.txt
git commit -m "提交ai.txt文件试试"
出现如下代表提交成功
git命令使用_远程仓库_04

验证,nothing to commit, working tree clean表示成功将文件从暂存区提交到仓库

git命令使用_暂存区_05

二、修改文件

先用vim命令对ai.txt文件进行修改,操作和在Liunx一模一样,修改完后在执行git status查看状态

git命令使用_远程仓库_06

这种红色的状态代表可提交(commit)
再次执行
git add ai.txt

git命令使用_暂存区_07

这种绿色状态代表成功到达暂存区

然后执行commit,再查看状态nothing to commit, working tree clean

git命令使用_ide_08

三、删除文件
step1: 删除本地
rm -rf ai.txt
step2:删除暂存区
git rm ai.txt
git status

git命令使用_github_09

step3:提交删除

git commit -m "注释"

git命令使用_github_10

以上是从工作区到暂存区的操作,下面是操作远程仓库相关的


首先获得远程仓库地址

git命令使用_git_11

git config --list 查看设置过的参数

git命令使用_暂存区_12

然后到一个你想放这些克隆文件的路径,可以是任何路径,右键点击 Git bash here

git命令使用_暂存区_13

执行 git clone <刚才复制的地址>

git命令使用_git_14

整个repository就被下载下来了。

以下是进入文件夹,修改了一个文件,然后上传到暂存区,然后commit到本地仓库
那个 "测试用" 是个没有后缀名的文件,之前我已经用vim修改过了它的内容。

git命令使用_暂存区_15

然后执行git push,上传到远程仓库

git命令使用_远程仓库_16

去自己github看了下,上传成功,也可以看到自己注释的信息等等。

 


总结: 
touch xx.txt  创建文件
git add xx.txt 添加到缓存区
git commit -m "hahaha" 提交到本地仓库
git push   上传到远程仓库

用git命令提交任务代码

先在gitHub上创建一个仓库

 

回到本地,在你要操作的项目文件夹下,鼠标右击打开 git bash命令窗口

如果项目文件夹里没有.git的隐藏文件,先执行git init,将此文件夹变为git可以管理的仓库

通过git add .   将所有文件提交,点代表当前路径下所有文件

git命令使用_远程仓库_17

上面的操作就将当前路径下所有文件放到了暂存区

通过git status可以看到文件都变绿色代表是在暂存区可提交的状态

git命令使用_ide_18

git commit -m "注释" ;  将文件从暂存区提交到本地仓库

git命令使用_ide_19

这个时候本地的仓库和没有和远程发生关联

通过 git remote add origin https://github.com/LittleSong2313996874/Task5.git,

git remote是管理远程仓库的命令,后面的add origin <地址> ,表示增加了一个origin远程仓库,origin是一个指针指向了后面的value。

在将本地仓库与GitHub网站上的仓库进行关联后,便可进行推送了,但是在第一次进行推送时,需要注意的是,GitHub网站上的仓库并非是空的,在创建时创建了一个README文档,因此需要将两者进行合并才行。rebase和merge都代表合并,两者区别:rebase和bersge区别

git pull --rebase origin master

最后,再进行推送即可。

git push -u origin master
git命令使用_github_20

这个带有-u这个参数是指,将master分支的所有内容都提交,第一次关联之后后边你再提交就可以不用这个参数了,之后你的每一次修改,你就可以只将你修改push就好了。

git push origin master

去刷新github发现提交成功。

上述命令中,origin代表远程仓库,master代表其分支。

比如:

git push A B:C     其中A和C是分别remote端的一个repository的名字和其branch的名字,B是本地端branch的名字

它的意思是把本地的B推送到remotes/A/C下。当B=C时可以直接省略为:git push A B。比如:

"git push origin master:master" 可以直接省略为"git push origin master".

再比如:

git push origin master     //把本地仓库提交到远程仓库的master分支中 

$ git push origin test:master         // 提交本地test分支作为远程的master分支
$ git push origin test:test              // 提交本地test分支作为远程的test分支

链接:

理解git中的head和master

git一些概念理解

origin  多用于指代远程仓库

master  多用于指定分支,可以是远程端分支也可以是本地端

fetch 拿取             push  推送

git命令使用_git_21

git branch -a  查看所有分支

git命令使用_暂存区_22

上面的显示表示

master 代表本地分支,

origin/master是远程分支  (origin指向仓库,master指向分支)

第一行的master前面的星号是你所在的分支的标记

第二行的红色是因为我后来对远程仓库master分支做了修改,本地和远程不同步。

另外关于 git clone  remote branch等等一些命令概念讲解,推荐这个链接 : git clone,push,remote,fetch命令详解

新增:删除github里的文件夹

github作为一个远程仓库如果想要删除里面的某个文件夹还要克隆再在push。

但是有时候的文件夹确实是没用的,比如idea目录下的 .idea

这时可以通过以下命令,注意这个 --cached 加文件名的形式,会删除本地仓库里的,但是不会删除实体文件


步骤:(以删除.idea文件夹为例)

git rm -r --cached .idea  #--cached不会把本地的.idea删除
git commit -m 'delete .idea dir'
git push -u origin master

git命令使用_git_23

可以看到实体文件还在

git命令使用_远程仓库_24

但是github上的已经删除了

git命令使用_暂存区_25