git 命令说明

1、用命令进行配置
$ git config –global user.name “Your Name” $ git config –global user.email “email@example.com”
注意git config命令的–global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。
2、用命令git clone克隆一个本地库
3、查看当前状态
$ git status
git status命令可以让我们时刻掌握仓库当前的状态,上面的命令告诉我们,readme.txt被修改过了,但还没有准备提交的修改。
4、添加到仓库
用命令git add告诉Git,把文件添加到仓库:
$ git add readme.txt
5、提交仓库
用命令git commit告诉Git,把文件提交到仓库:
$ git commit -m “wrote a readme file”
git commit命令,-m后面输入的是本次提交的说明,可以输入任意内容,当然最好是有意义的,这样你就能从历史记录里方便地找到改动记录。
6、查看历史记录
历史记录,在Git中,我们用git log命令查看:
$ git log commit 3628164fb26d48395383f8f31179f24e0882e1e0 Author: 06peng <linlepeng@06peng.com> Date: Tue Aug 20 15:11:49 2013 +0800 append GPL commit ea34578d5496d7dd233c827ed32a8cd576c5ee85 Author: 06peng <linlepeng@06peng.com> Date: Tue Aug 20 14:53:12 2013 +0800 add distributed 或者 $ git log –pretty=oneline 3628164fb26d48395383f8f31179f24e0882e1e0 append GPL ea34578d5496d7dd233c827ed32a8cd576c5ee85 add distributed cb926e7ea50ad11b8f9e909c05226233bf755030 wrote a readme file
7、回滚
回退到上一个版本
$ git reset –hard 3628164
8、恢复
恢复到新版本怎么办?找不到新版本的commit id
$ git reflog ea34578 HEAD@{0}: reset: moving to HEAD^ 3628164 HEAD@{1}: commit: append GPL ea34578 HEAD@{2}: commit: add distributed cb926e7 HEAD@{3}: commit (initial): wrote a readme file
9、暂存代码
git stash 可用来暂存当前正在进行的工作
$ git stash save “work in progress for foo feature”
10、取出暂存区代码
$ git stash list 命令可以将当前的Git栈信息打印出来
git stash apply stash@{0} 就可以将你指定版本号为stash@{1}的工作取出来
当你将所有的栈都应用回来的时候,可以使用 git stash clear 来将栈清空。
11、分支管理
创建dev分支,然后切换到dev分支:
$ git checkout -b dev
用git branch命令查看当前分支:
$ git branch
换回master分支:
$ git checkout master
分支的工作成果合并到master分支上:
$ git merge dev
12、更新 & 提交
更新
git pull –rebase
如果有冲突,会提示你。冲突分为两种,一种是在不同地方的冲突,通常情况下,git是可以自己合并的。另外一种是因为可能是同一个文件的编辑,git没法自动合并,需要二选一,这时候打开冲突的文件,手动编辑文件到可用的版本。然后。。
git rebase –continue
git push
13、缓存密码
.gitconfig 文件中添加
[credential]
helper = store
或者
$ git config –global credential.helper store
14、.gitignore文件说明
*.iml
*.idea
*/.classpath
*/.launch
*/.project
*/.settings
/*.launch
/*.tmproj
*/ivy*
*/eclipse
!.gitignore
*/target
*/outputLocation_IS_UNDEFINED
15、客户端工具介绍
windows 的github软件
1.source tree
2.Git Extensions.
3.msysGit
4.Cmder
5.乌龟 tortoise git
6.twilight
16、
一、 提交时
假设修改ABC.java为Abc.java。
1.1 如果使用git命令进行仅涉及大小写的重命名
1.1.1 设置git库为大小写敏感(不建议)
$ git config core.ignorecase false
用这种方法进行重命名,用git status就可以识别出修改了,但是不推荐用这种方式,因为在更新这种修改的时候会有麻烦。
1.1.2 使用git mv命令(仅当core.ignorecase为true时可用)
$ git mv ABC.java Abc.java
$ git status
……
renamed: ABC.java -> Abc.java
此时的状态是renamed,git commit即可。
1.2 如果使用Eclipse进行仅涉及大小写的重命名
无论core.ignorecase设置为true还是false或者没有设置该项,修改之后均可正常提交,在进行Commit的时候,对话框中显示的修改文件列表有:
即删除ABC.java并增加Abc.java,直接commit然后push即可。
偶尔会出现在Eclipse端修改完之后右键commit为灰色的情况,这时候如果使用git status发现有renamed状态的修改的话,也可以直接在git bash上commit并push。
17、
比如我现在有两个分支,分别是master和develop
按照官方的说法,在.gitattributes文件中如下设置
database.xml merge=ours
两个分支中都有database.xml文件,但是内容不同,我不想在master合并develop分支的时候,把database.xml也合并了。
还需设置如下:
git config –global merge.ours.driver true
当我修改了develop分支中的database.xml,切换到master分支进行合并
git merge develop

发表评论

电子邮件地址不会被公开。 必填项已用*标注