这些变量可以存放在以下三个不同的地方:
/etc/gitconfig
文件:系统中对所有用户都普遍适用的配置。若使用git config
时用--system
选项,读写的就是这个文件。~/.gitconfig
文件:用户目录下的配置文件只适用于该用户。若使用git config
时用--global
选项,读写的就是这个文件。- 当前项目的 Git 目录中的配置文件(也就是工作目录中的
.git/config
文件):这里的配置仅仅针对当前项目有效。每一个级别的配置都会覆盖上层的相同配置,所以.git/config
里的配置会覆盖/etc/gitconfig
中的同名变量。 - 在 Windows 系统上,Git 会找寻用户主目录下的
.gitconfig
文件。主目录即$HOME
变量指定的目录,一般都是C:\Documents and Settings\$USER
。此外,Git 还会尝试找寻/etc/gitconfig
文件,只不过看当初 Git 装在什么目录,就以此作为根目录来定位。
git config --global user.name "John Doe"
git config --global user.password "John Doe"
git config --global user.email [email protected]
要检查已有的配置信息,可以使用 git config --list
第一个需要配置的就是用户的用户名和email,因为这些内容会出现在你的每一个提交(commit)里面的,像下面这样:
$ git log #我们用git log查看当前仓库的提交(commit)日志
commit 71948005382ff8e02dd8d5e8d2b4834428eece24
Author: author <[email protected]>
Date: Thu Jan 20 12:58:05 2011 +0800
Project init
git配置全局用户名和密码
永久记住密码 git config --global credential.helper store
会在用户主目录的.gitconfig
文件中生成下面的配置。
[credential]
helper = store
如果没有--global
,则在当前项目下的.git/config
文件中添加。
如果大家对于Git熟悉后,可以直修改”~/.gitconfig”,”.git/config”这两个文件进行配置。
git查看本地具体文件改动的明细 git diff fileName
git clone 指定 目录
git clone https://github.com/plasticboy/vim-markdown.git ~/Downloads/vim-markdown
使用git克隆指定分支的代码
git clone -b 分支名 https://git.oschina.net/oschina/android-app.git
git撤销commit,但未git push的命令
在git push的时候,有时候我们会想办法撤销git commit的内容
1、找到之前提交的git commit的id
git log
找到想要撤销的id
2、git reset –hard id
完成撤销,同时将代码恢复到前一commit_id 对应的版本
3、git reset id
完成Commit命令的撤销,但是不对代码修改进行撤销,可以直接通过git commit 重新提交对本地代码的修改
远程分支之间如何合并
如图中所示(图上的分支都是远程仓库中的),黄色的分支是dev分支,从dev版本迭代过程中,单元测试没有问题了,此时会把代码合并到release,交由测试部门进行测试,测试通过之后,合并到master分支上面,我画的第一幅图简化了这个过程,那么现在问题出来了。
介绍了大致的工作流程之后,如何将远程的dev合并到远程的master上去呢?
首先,远程分支的合并工作是必须由git管理员来操作的。
其次,如何操作?
现在要把远程的dev合并到远程master上面,思路如下:
1.clone项目到本地,此时默认会把master分支clone一份到本地。
2.本地分支上新建一个dev分支,名字和远程的dev一样,复制一份远程dev上面的代码,切换到本地master,合并本地dev。
3.解决合并过程中的冲突,之后Push到远程master,效果就是远程的dev合并到了远程的master上面。
1、git clone master分支
2.把远程dev“复制”到本地
git checkout -b dev origin/dev
3.master合并dev分支
git merge dev
4. push到远程仓库
git add -A
和 git add . git add -u在功能上看似很相近,但还是存在一点差别
git add . :他会监控工作区的状态树,使用它会把工作时的所有变化提交到暂存区,包括文件内容修改(modified)以及新文件(new),但不包括被删除的文件。
git add -u :他仅监控已经被add的文件(即tracked file),他会将被修改的文件提交到暂存区。add -u 不会提交新文件(untracked file)。(git add --update的缩写)
git add -A :是上面两个功能的合集(git add --all的缩写)