赞
踩
linux系统一般是默认安装了git的,可以使用以下命令查看git支持的命令和git的版本信息。
git --help
git --version
git config 配置相关
当前用户配置的信息只对当前用户有效,对root用户和其他用户都是不可见的。
配置用户名和邮箱:
git config --global user.name 用户名
git config --global user.email 邮箱
--global的含义是全局配置,与全局配置相对应的是只对当前仓库进行配置
在不配置用户名和邮箱的情况下,可以clone代码和创建分支,然而不能执行merge、pull、push、commit等操作,因为git在管理这些操作时必须知道用户名和邮箱。不过git add在不配置用户名和邮箱的情况下可以执行,因为git add只是添加到暂存区
查看当前配置列表:
git config -l
值得注意的是,git config 可以在仓库目录执行,也可以在普通文件目录执行。在普通目录执行,看到的是–global配置,也就是全局配置;在仓库目录执行,看到的是仓库对应的配置。如下图所示,可以看到配置信息中包含origin的地址,以及各个本地分支对应的远程分支。如果配置加了–global,那么相应的配置会保存在~/.gitconfig里面。
git管理代码可以通过两种方式,一种是HTTPS,另外一种是SSH协议。通过HTTPS往往需要输入用户名和密码,而通过SSH协议需要在使用之前配置秘钥。SSH协议使用rsa算法,所以会生成公钥和私钥,本地生成密钥后需要把公钥复制到代码托管网站上。秘钥的生成方式如下:
ssh-keygen -t rsa -C ‘登录邮箱’
在生成秘钥的过程中可以选择保存秘钥的目录,生成密钥后,会提示密钥存储的位置。
git config --global core.editor vim
如果直接使用仓库的地址,那么克隆下来的将是master分支。在github等网站上通过切换分支,可以直接获取到分支的地址,因此可以使用分支地址直接克隆。
git clone 主仓库地址
git clone 分支地址
git checkout -b 新建分支名可以用于新建分支,在没有指定源分支名时,默认当前分支是源分支。
git checkout -b dev #以当前分支为模板创建新分支
git checkout -b dev origin/dev #指定远程分支为末班创建新分支
git checkout -b dev 本地已有的分支名 #以指定的本地分支为模板创建新分支
查看所有分支
git branch -a
在代码没有冲突的情况下直接合并
git merge 分支名 #将指定分支合并到当前分支
在有冲突的情况下,冲突会写入相应的文件,例如Readme有冲突,那么冲突的内容会在Readme文件中体现,打开这个文件手动修改即可。
当做了一些修改,不想直接提交,而又需要切换到其它分支的时候需要暂存代码。
暂存到栈
git stash
从栈中取出
git stash pop
git blame arch/arm/Kconfig
git log --oneline
git branch --contains fd574a2f841c
git log -p arch/xtensa/mm/fault.c
git头指针处于分离状态是指HEAD指针没有指向分支而是指向某一次提交,这时如果进行commit,相应的内容不会提交到任何分支,而且未来可能会被清除。有哪些情况会造成头指针处于分离状态呢?
要保留头指针分离状态下提交的内容,可以新建一个临时分支,将这个分支合并到想要保存该提交的分支,然后删除临时分支即可。
git branch temp CommitID #为CommitID对应的提交创建临时分支
git merge temp
git branch -d temp #当前分支无法被删除
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。