git的初始配置一般是配置用户名和电子邮件,用户名和电子邮件并不是git权限的认证,用户名和电子邮件只是用来显示仓库下用户的昵称和联系方式,并不涉及git权限的认证。
$ git config --global XXXXXX
-
作用域设置:
git config的设置作用域分为
local
、global
和system
,默认值其实是local
。local
只对某个仓库有效,global
是对当前用户所有的仓库有效,system
是对系统所有登录的用户有效。
$ git config --global user.name "cowen zheng"
$ git config --local user.name "zheng hao"
-
配置的显示:
显示config的配置,我们只需要加
--list
参数即可。
$ git config --list --global
我们在建立git仓库时,常见的场景其实只有两种:
-
把已有的项目代码纳入git管理:
lesson文件夹下会自动生成一个.git文件夹。
$ cd lesson
$ git init
-
新建的项目直接使用git管理:
使用
git init
初始化一个lesson项目文件夹,该文件夹中会存在一个.git文件夹。
$ cd project
$ git init lesson
我们使用git add
命令将修改防止暂存区,暂存区要向工作区提交的话使用git commit -m
命令。
$ git add index.html //将指定文件添加至暂存区
$ git add -u //将已经纳入git管理的文件添加至暂存区,不包括新增文件
$ git add . //将所有修改添加至暂存区,包括新增文件
有的时候我们需要将相关的文件修改名称重新提交,git的操作是默认先删除文件,然后再新增一个文件。当然我们也可以使用便捷的方法:
$ git mv index.html default.html
使用git log
可以查看当前的版本历史,加配不同的参数,可以实现不同的展示。
-
git log --oneline
:只展示提交的版本号和提交的message名称。 -
git log --all
:显示所有分支的版本历史。(这对于多个分支下的代码管理是很重要的) -
git log -n4
:显示提交记录中的前4条记录。 -
git log --graph
:图形化显示版本历史。
$ git log --oneline
$ git log --oneline -n4
$ git log --oneline --graph
分支可以理解为某个版本下的备份,并在该备份文件下进行的扩展。
-
git checkout -b branchname
:新建分支,并自动切换到该分支。 -
git checkout branchname
:切换分支。 -
git branch
:查看当前所有分支。 -
git branch -D branchname
:删除分支(注意删除分支时,HEAD不能指向当前要删除的分支)。
$ git checkout -b demo
$ git checkout demo
$ git branch
$ git branch -D demo
我们在提交代码时,会用到git commit -m message
,但是有的时候我们感觉上次提交的message信息不完整或者不准确,可以借助git commit --amend
进行修改。
$ git commit --amend
使用
git commit --amend
命令会弹出vim编辑界面,在该界面中进行修改。
我们在建立git仓库时,常见的场景其实只有两种:
-
把已有的项目代码纳入git管理:
lesson文件夹下会自动生成一个.git文件夹。
$ cd lesson
$ git init
-
新建的项目直接使用git管理:
使用
git init
初始化一个lesson项目文件夹,该文件夹中会存在一个.git文件夹。
$ cd project
$ git init lesson
我们使用git add
命令将修改防止暂存区,暂存区要向工作区提交的话使用git commit -m
命令。
$ git add index.html //将指定文件添加至暂存区
$ git add -u //将已经纳入git管理的文件添加至暂存区,不包括新增文件
$ git add . //将所有修改添加至暂存区,包括新增文件
有的时候我们需要将相关的文件修改名称重新提交,git的操作是默认先删除文件,然后再新增一个文件。当然我们也可以使用便捷的方法:
$ git mv index.html default.html
使用git log
可以查看当前的版本历史,加配不同的参数,可以实现不同的展示。
-
git log --oneline
:只展示提交的版本号和提交的message名称。 -
git log --all
:显示所有分支的版本历史。(这对于多个分支下的代码管理是很重要的) -
git log -n4
:显示提交记录中的前4条记录。 -
git log --graph
:图形化显示版本历史。
$ git log --oneline
$ git log --oneline -n4
$ git log --oneline --graph
分支可以理解为某个版本下的备份,并在该备份文件下进行的扩展。
-
git checkout -b branchname
:新建分支,并自动切换到该分支。 -
git checkout branchname
:切换分支。 -
git branch
:查看当前所有分支。 -
git branch -D branchname
:删除分支(注意删除分支时,HEAD不能指向当前要删除的分支)。
$ git checkout -b demo
$ git checkout demo
$ git branch
$ git branch -D demo
我们在提交代码时,会用到git commit -m message
,但是有的时候我们感觉上次提交的message信息不完整或者不准确,可以借助git commit --amend
进行修改。
$ git commit --amend
使用
git commit --amend
命令会弹出vim编辑界面,在该界面中进行修改。
在向暂存区添加修改时,我们希望比对当前暂存区和Head对于版本的比对,可以使用git diff --cached
命令。
$ git diff
当完成修改之后,使用git add .
命令向暂存区提交修改(使用git status
查看文件颜色由红色变为绿色),我们可以使用git reset HEAD
命令放弃之前的git add .
文件操作。
$ git add index.html
$ git reset HEAD
git reset HEAD
命令是对所有的文件进行暂存区恢复至HEAD,如果指定特定的文件时,我们可以使用git reset head -- demo.html
命令。
$ git add .
$ git reset HEAD -- index.html
当在工作完成修改之后,并没有像暂存区执行git add
命令,发现修改错误,我们可以使用git checkout -- filename
命令放弃当前工作区的修改,恢复当前文件至最新的head版本。
如果放弃工作区所有文件的修改,使用git checkout .
命令。
$ git checkout -- demo.html
$ git checkout .
在使用git commit
命令提交多次文件之后,我们还可以使用git reset --head versionno
命令使的代码回滚到某个版本,当时这种操作是很危险的,这意味着你要放弃之前的所有的提交。
$ git reset --hard 914beeaec1
可以使用git diff
命令查看不同commit
下的版本差异化的比较,甚至可以查看不同branch
下的文件的差异。
$ git diff 4105a6d4e4c c6f80a904e6 -- index.html
$ git diff temp master -- index.html
在对git管理的文件执行删除操作时,以前我们需要先删除掉文件,然后把删除信息通过git add .
命令添加到暂存区,这样繁琐的操作可以使用git rm ..
命令。
$ git rm index.html
对于正在进行紧急开发的开发人员,突然被安排要去处理一个紧急任务,对于这样的突发状况,我们可以使用git stash
命令将当期的修改暂存。代码恢复到最后一次提交的状态。
-
git stash apply
:将记录恢复到git stash
保存的状态,并且保存该stash
信息。 -
git stash pop
:将记录恢复到git stash
保存的状态,但是删除该stash
信息。
公私钥是SSH
协议下上传代码的协议凭证,公私钥存放在.ssh
文件夹下,每台计算机对应的公私钥是唯一的。
$ cd ~/.ssh/ //进入ssh文件夹中
$ ls //如果公私钥存在的话可以发现三个文件
id_rsa id_rsa.pub know_hosts
Note:
id_rsa.pub
公钥存放在网上,id_rsa
私钥存放在个人本地计算机中,公钥和私钥一一对应,才能正确的上传代码。
-
公钥的查看:
首先进入
.ssh
文件夹下,查看所有的文件,如果公钥存在的话,会发现有对应.pub
后缀名的文件存在。
$ cd ~/.ssh/
$ ls
id_rsa id_rsa.pub
-
公钥的添加:
一个电脑可以对应多个公钥,比如我们的电脑要操作多个项目,而多个项目可能会部署到多个代码托管服务器上,因此需要配置多个对应的公钥。
公钥是和邮箱想对应的,因此不同的代码托管账户对应的邮箱也是不一样的。
$ ssh-keygen -t rsa -C "example@163.com"
Note:点击生成成功之后,要注意修改不同的名字,否则的话会把默认的公钥覆盖掉,造成验证失败。