目录
设置用户名和邮箱
git config --global user.name "xxx"
git config --global user.email "xxx@xxx.xx"
换行符转换
由于window、linux的换行符是不一样的,当你将window环境下的代码上传到github时,默认自动转换为linux换行格式,所以就需要下面的命令,将最后一个参数置为false
git config --global core.autocrlf false
git config配置获取
查看仓库配置【必须要进入到具体的目录下】
git config --local -l
查看用户配置
git config --global -l
查看系统配置
git config --system -l
新建版本库
git init
将修改加入到版本库
param可以指定文件名或者是目录,当为 . 时,则代表所有文件
git add <param>
如果发现有问题,可以用git reset回退
版本提交
引号中说明版本信息
git commit -m “xxxxxxxx”
修改上一次提交
git commit –amend
命令运行之后进入vim编辑模式,修改你上次提交的commit,即文件首个段,保存退出即可,使用git log查看可以发现上一次的commit已经被修改了
查看历史版本
git log
查看修改
git status
本地关联服务器
ssh-keygen -t rsa -C 'xxx@xx.com'
将 ~/.ssh目录下的id_rsa.pub中的公钥加入GitHub(Setting->SSH and GPG keys->New SSH key)中,然后用如下命令验证这个key是否能工作
ssh -T git@github.com
该命令为测试命令,之后会提示
Are you sure you want to continue connecting (yes/no)?
只要回答yes,回车就会看到下面的
Hi Anonymous! You've successfully authenticated, but GITEE.COM does not provide shell access.
就表示你的设置已经成功了。
从远端clone版本库到本地
git clone <URL>
URL为项目仓库的地址,可能以ssh://, http(s)://, git://,或是只是以一个用户名(git 会认为这是一个ssh 地址)为前辍,以github为例,可以在项目中查找
push代码到远端
git push <远程主机名> <本地分支名> <远程分支名>
如果当前分支与远程分支存在追踪关系,则本地分支和远程分支都可以省略,将当前分支推送到origin主机的对应分支
git push origin
分支管理branch和checkout命令
创建一个新的分支,就是创建一个新的指针,用来在快照间移动。Git 通过 HEAD 指针,指向当前工作的本地分支
branch主要用法如下
git branch
不带参数:列出本地已经存在的分支,并且在当前分支的前面用"*"标记
git branch -r
查看远程版本库分支列表
git branch -a
查看所有分支列表,包括本地和远程
git branch dev
创建名为dev的分支,创建分支时需要是最新的环境,创建分支但依然停留在当前分支
git branch -d dev
删除dev分支,如果在分支中有一些未merge的提交,那么会删除分支失败,此时可以使用 git branch -D dev:强制删除dev分支
git branch -vv
可以查看本地分支对应的远程分支
git branch -m oldName newName
给分支重命名
checkout主要用法如下
- 操作文件
git checkout filename
放弃单个文件的修改
git checkout .
放弃当前目录下的修改
- 操作分支
git checkout master
将分支切换到master
git checkout -b master
如果分支存在则只切换分支,若不存在则创建并切换到master分支
版本回退
git reset --hard <commit id>
根据 commit id 回退到指定的版本,id 可以用git log查看,为了方便,也可只取id的前几位,一般5~6位即可
如果退回到某一版本之后后悔了,想要重新找回最新代码,可以用 git reflog查看操作的历史,查找到你要的操作id,依旧使用上文说的git reset --hard id,又回退到当初一模一样的版本了。
当把修改只是加到版本库(git add),但是还没有提交(git commit),也可以通过git reset退回到未使用add之前
对比差异
git diff branch1 branch2 --stat
显示出所有有差异的文件(不详细,没有对比内容)
git diff branch1 branch2
显示出所有有差异的文件的详细差异(更详细)
git diff branch1 branch2 具体文件路径
显示指定文件夹的详细差异(对比内容)