引言:最近自学来git,把学习笔记写下来,记录以下,再推荐几个学习网站;
一、安装
安装就几条命令而已:
apt-get install libcurl4-gnutls-dev libexpat1-dev gettext libz-dev libssl-dev
apt-get install git
git --version
二、配置
第一步就是要配置,需要指定邮箱,与用户名,这样你开发一个仓库的时候,提交就会有显示时谁提交的,相当于时你的id;
git config --global user.name "Evane"
git config --global user.email Evane@example.com
由于你的本地 Git 仓库和 GitHub 仓库之间的传输是通过SSH加密的,所以我们需要配置验证信息:
使用以下命令生成 SSH Key
ssh-keygen -t rsa -C "youremail@example.com"
后面的 your_email@youremail.com 改为你在 Github 上注册的邮箱,之后会要求确认路径和输入密码,我们这使用默认的一路回车就行。
成功的话会在 ~/ 下生成 .ssh 文件夹,进去,打开 id_rsa.pub,复制里面的 key。
回到 github 上,进入 Account => Settings(账户配置)。添加即可;具体可以看https://www.runoob.com/git/git-remote-repo.html
三、创建仓库
创建本地仓库的方法有两种:一种是创建全新的仓库,另一种是克隆远程仓库;
第一种:创建全新的仓库
创建全新的仓库,需要用GIT管理的项目的根目录执行,创建一个文件夹,把相应的文件放入到该文件夹中,进入到该文件夹下,执行以下命令
git init
这样该文件夹中就会多出一个.git文件,关于版本等的所有信息都在这个目录里面。;
第二种:克隆远程仓库
一般这种情况,我们都是fork你想要的仓库,将远程服务器上的仓库完全镜像一份至本地,然后进行工作,跳到第五步。
如:
git clone https://gitee.com/evace/deep-learning-scripts.git
四、在github或者gitee建立一个仓库
1、打开github,点+,
2、然后创立一个项目就行,其中Add a README file ,我建议不添加,因为添加后,你到最后Push到远程仓库的话,会出现问题。
五、提交本地的repository
到GitHub
git add . 表示将该文件夹下所有文件都添加到暂存区。也可以将.改为某个文件点名字
git commit -m "add" 将暂存区点文件添加到本地仓库,-m 的意思时给该文件添加信息,相当于备注一样点感觉,
# 提交到 Github
git remote add origin https://gitee.com/evace/deep-learning-scripts.git
把刚刚在github中建立的仓库,复制链接(https://gitee.com/evace/deep-learning-scripts.git),将该链接复制,如下图所示操作。该语句的意思添加远程仓库,名字用origin代替
git push -u origin master 将本地仓库远程到远程仓库origin中,-u的意思是默认该origin,以后提交到远程仓库只需要git push就行了
六、其余一些比较好的学习链接
https://mp.weixin.qq.com/s/Bf7uVhGiu47uOELjmC5uXQ
https://www.runoob.com/git/git-tutorial.html
七、一些常用命令
1、git commit --amend 有时候我们会发现有几个文件漏了提交或者想修改一下提交信息,又或者忘记使用 -a 选项导致一些文件没有被提交,我们希望对上一次提交进行修改,或者说取消上一次提交,这时候我们需要使用 –amend 选项。
$git status
# On branch master
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# file3
nothing added to commit but untracked files present (use "git add" to track)
$git add file3
$git commit --amend
[master 671f5cc] commit --amend, add file3
1 files changed, 2 insertions(+), 0 deletions(-)
create mode 100644 file2
create mode 100644 file3
$git status
# On branch master
nothing to commit (working directory clean)
2、 git commit -a 在修改文件后,需要使用git add把文件加入暂存区,这样git commit时才能把已经修改的信息加入版本库,而使用git commit -a可以不用再git add
3、pull clone的区别:
git clone 是本地没有 repository 时,将远程 repository 整个下载过来。
git pull 是本地有 repository 时,将远程 repository 里新的 commit 数据(如有的话)下载过来,并且与本地代码merge
4、如何只取消暂存两个中的一个呢 ,具体可看https://www.jianshu.com/p/37f3a7e4a193
git reset HEAD 某文件
此时该文件处于未暂存状态了
5、git reset --soft
取消最近commit,也可以指定回到某个提交的版本,具体可看https://www.jianshu.com/p/c6927e80a01d