文章目录
1.安装Git
输入下面命令查看git是否已经安装
$ git --version
若没有安装,则输入下面命令
$ sudo apt-get install git -y
#如果是Mac用户,则:
$ brew install git
#brew和apt-get都可以看作软件管理工具,Liunx下用apt-get,Mac下用brew,若没有它就先下它
2.配置用户名与邮箱
##若想设置为全局生效,就添加--global参数
$ git config --global user.name "用户名"
$ git config --global user.email "邮箱名"
3.基本流程
- 初始化新的仓库或远程Clone仓库
- 创建或修改文件
- 使用
git add
命令将修改后的文件添加到本地缓存(索引库) - 使用
git commit
命令提交改动到本地代码库 - 使用
git push
命令推送到远程仓库
4.基本使用
4.1克隆远程仓库到本地或者在本地初始化仓库
4.1.1克隆远程仓库到本地(前提条件是本地已与远程仓库SSH关联)
在自己远程仓库中(比如自己的Github仓库)点击clone or download,选择Use SSH,然后复制链接。
然后在本地中输入命令:
$ cd 存储的路径
$ git clone 之前复制的链接
4.1.2克隆远程仓库到未关联SSH的主机
在远程仓库中点击clone or download,选择Use HTTPS,然后复制链接。
然后在本地中输入命令:
$ cd 存储的路径
$ git clone 之前复制的链接
4.1.3本地初始化新仓库
创建代码目录并初始化, 通过git init
命令进行初始化
$ cd 想要放置的位置
$ mkdir project
$ cd project
$ git init
对于三者的区别,前两者已经同远程仓库建立连接,第一个从本地向远程仓库push更新的时候不用账号密码,第二个需账号密码。而第三个没有同远程仓库建立连接
4.2查看本地git仓库状态
利用git status
命令查看当前本地仓库的状态信息
4.3添加文件到索引库
以下操作都需要在克隆到本地的仓库目录下进行:
4.3.1添加/修改
把一个文件添加或更新内容到本地索引,可以使用git add
命令
例如创建一个新的txt文件,并往文件内写入“hello world”,并用git add
命令添加到本地索引库中:
$ echo "hello world" > newfile.txt
$ git add newfile.txt
4.3.2删除
把仓库里的文件删掉,可以使用git rm
命令
例如删除新创建的newfile.txt文件
$ git rm newfile.txt
对于删除文件,需要git commit
一下,版本库中文件才可以完全被删除
4.3.3撤销
把仓库里的改动撤销回到刚克隆下来的状态,可以使用git reset
命令
#git reset命令有三种方式
$ git reset -mixed #git reset默认方式,退回到某个版本,只保留源码,回退commit和index信息
$ git reset -soft #回退到某个版本,只回退commit信息。如果还要提交,直接commit即可
$ git reset -hard #彻底退回某个版本,本地的源码也会变为上一个版本的内容
#用法为:
#回退所有内容到上一个版本
$ git reset HEAD^
#回退newfile.txt这个文件的版本到上一个版本
$ git reset HEAD^ a.py
#向前回退所有内容到第3个版本
$ git reset HEAD~3
#回退到某个版本
git reset 版本名
4.4提交仓库的改动
仓库的每次改动操作后,推送同步到远程仓库前,都需要对这一次或这一批次的操作做提交,命令为git commit
,只有完成提交,才可以推送改动到远程仓库
例如提交本次改动:
git commit -m "我的注释"
4.5推送到远程仓库
提交仓库改动后就可以开始推送改动的内容到远程仓库了,命令为git push
,用法是git push -u origin 分支名
,其中分支名默认为master。第一次推送可以使用-u参数(会绑定此时的仓库分支名,这样下次推送就无需加分支名了)
$ git push -u origin master
4.6当远程仓库被修改,如何同步到本地
4.6.1查看仓库改动
通过git fetch
命令查看有哪些新改动,用法为:
$ git fetch origin
4.6.2同步到本地
通过git pull
命令实现同步到本地,具体用法是git pull origin 分支名
,分支名默认为master
git pull origin master
如果有写的不对或者不全面的地方 可通过主页的联系方式进行指正,谢谢