Git 笔记整理
Git 笔记整理
参考资源说明:
参考原博客:
一、Git 安装
1. 下载
你可以从 https://git-scm.com/ 获得Git在Windows/macOS/Linux三个操作系统相关的安装包。也可以通过以下方式安装。
2. 安装
-
windows
从 http://git-scm.com/download 上下载window版的客户端,以管理员身份运行后,一直选择下一步安装即可,请注意,如果你不熟悉每个选项的意思,请保持默认的选项
-
Ubuntu 下安装
在终端下执行 apt-get install git
-
Centos/Redhat 安装
在终端下执行 yum install git
3. 配置
在新的系统上,我们一般都需要先配置下自己的 Git 工作环境。配置工作只需一次,以后升级时还会沿用现在的配置。当然,如果需要,你随时可以用相同的命令修改已有的配置。
-
用户信息配置
配置的是你个人的用户名称和电子邮件地址。这两条配置很重要,每次 Git 提交时都会引用这两条信息,用来标识是谁提交了更新;
如果用了 --global 选项,表示配置的是当前用户;
$ git config --global user.name "John Doe" $ git config --global user.email johndoe@example.com
如果你是使用
https
进行仓库的推拉,你可能需要配置客户端记住密码,避免每次都输入密码$ git config --global credential.helper store
-
查看配置信息
要检查已有的配置信息,可以使用 git config --list 命令:
$ git config --list user.name=Scott Chacon user.email=schacon@gmail.com color.status=auto color.branch=auto color.interactive=auto color.diff=auto ...
也可以直接查阅某个环境变量的设定,只要把特定的名字跟在后面即可,像这样:
$ git config user.name Scott Chacon
二、 Git 基础操作
1. 仓库基础管理
初始化一个Git仓库(以/home/gitee/test
文件夹为例)
$ cd /home/gitee/test #进入git文件夹
$ git init #初始化一个Git仓库
将文件加入到暂存区, 例如将本地新添加的readme.txt要提交到仓库,需要先加入到暂存区;
$ git add "readme.txt"
注:使用git add -A
或git add .
可以提交当前仓库的所有改动。
从Git的暂存区提交版本到仓库,参数-m
后填写本次提交的备注信息
$ git commit -m "1.0.0"
本地的Git仓库信息推送上传到服务器
$ git push https://gitee.com/***/test.git
查看git提交的日志
$ git log
2. 远程仓库管理
修改远程仓库名称
一般来讲,默认情况下,在执行clone或者其他操作时,仓库名都是 origin ,如果想改名字,例如改为 oschina 那么就要在仓库目录下执行命令:
git remote rename origin oschina
这样 你的远程仓库名字就改成了oschina,同样,以后推送时执行的命令就不再是 git push origin master 而是 git push oschina master 拉取也是一样的。
添加一个仓库
在不执行克隆操作时,如果想将一个远程仓库添加/关联到本地的仓库中,可以执行:
git remote add origin 仓库地址
注意: 1.origin是你的仓库的别名 可以随便改,但请务必不要与已有的仓库别名冲突 2. 仓库地址一般来讲支持 http/https/ssh/git协议,其他协议地址请勿添加;
查看当前仓库对应的远程仓库地址
git remote -v
这条命令能显示你当前仓库中已经添加了的仓库名和对应的仓库地址,通常来讲,会有两条一模一样的记录,分别是fetch和push,其中fetch是用来从远程同步; push是用来推送到远程。
3. 常用命令
同步pull
同步,也可以称之为拉取,和SVN不同,Git的所有仓库之间是平等的,所以,为了保证代码一致性,尽可能的在每次操作前进行一次同步操作;
git pull origin master
origin
代表的是你远程的仓库,可以通过命令 git remote -v
查看;
master
是分支名,如果你本地是其他分支,请换成其他分支的名字;
另,因为远程仓库与你本地仓库可能存在冲突,故当存在冲突时,请参考进阶篇的如何处理冲突;
推送push
当你代码有更新时,你需要更新到远程仓库,这个动作被称之为推送,执行的命令与拉取一样,只是将其中的pull
这个单词改成push
;
git push origin master
如果远程仓库存在你本地仓库没有的更新,则在推送前你需要先进行一次同步;
如果你确定你不需要远程的更新,则在推送时加上 -f
选项,则可以强制推送,注:在协同开发中,我并不建议这么做,因为这样很可能覆盖别人的代码。git push origin master -f
暂存
作用就是可以将你当前正在进行的工作暂时存起来,然后在此基础上干别的事情,等你别的事情干完后,再转回来继续;
- 将当前改动暂存起来:
git stash
- 恢复最后一次暂存的改动:
git stash pop
- 查看有多少暂存:
git stash list
撤销/回退
撤销命令使用是非常频繁的,因为某些原因,我们不再需要我们的改动或者新的改动有点问题,我们需要回退到某个版本,这时就需要用到撤销命令;
撤销当前的修改:
git reset --hard
请注意:以上命令会完全重置你的修改,如果你想保留某些文件,请使用checkout +文件路径 命令来逐一撤销修改;
如果你想重置到某一版本,可以将 --hard
改为具体的Commit的id如:
git reset 1d7f5d89346
请注意,这时你的修改仍然存在,只是你的最近一次提交的版本号变成了你要重置的版本,如果说你想完全丢弃修改,只需要加上 --hard参数就可以;
三、上传本地项目到远程仓库
1. 执行初始化命令
在项目的跟目录下,在doc窗口执行初始化命令,让该文件夹被git管理;执行完成后文件夹下会出现一个 .git 的隐藏文件夹;
$ git init
Initialized empty Git repository in D:/workplace/cnjy-parent/.git/
2. 添加到暂存区
$ git add . # 点号表示所有文件
3. 提交到本地仓库
$ git commit -m "第一版上传" # 引号里面是备注信息,随便写
4. 关联远程仓库
$ git remote add origin https://gitee.com/xxx.git # https://xxx 是从gitee上复制出来的
5. pull 拉取readme文件
如果 gitee 仓库创建的额时候有 README.MD 文件,则先拉取代码,如果仓库是空的则跳过;
$ git pull --rebase origin master
6. 提交远程仓库
git push -u origin master