Git Bash初始化设置
配置本机的用户名和Email地址
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
创建版本库(仓库)
版本库又叫仓库(repository),这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除都能被跟踪。
在合适的位置直接鼠标右键创建一个空目录作为仓库,然后从Git-Bash命令行进入到该目录,或者也可以使用命令行创建空目录,再进入到该空目录中。
以下给出创建并初始化git仓库的代码:进入到仓库的位置,我将仓库放在了D:/xampp/htdocs目录下,注意,使用cd命令进入到目录中时,在Git-Bash中应该使用斜线”/”,而不是反斜线”\”
$ cd D:/xampp/htdocs
使用init命令将当前目录初始化为Git仓库
$ git init
Initialized empty Git repository in D:/xampp/htdocs/.git/(显示信息意思为:初始化了一个空的Git仓库,htdocs目录下多了一个.git目录,时用来管理版本库的)
生成ssh公钥
$ ssh-keygen -t rsa -C "xxxxxx@qq.com"
# Generating public/private rsa key pair...
# 三次回车即可生成 ssh key
查看 public key,并把它添加到码云
cat ~/.ssh/id_rsa.pub
# ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC6eNtGpNGwstc....
设置远程库名
git remote add origin 远程地址
oschina中的README.md文件不在本地代码目录中
git pull --rebase origin master
将数据提交到git仓库(本地仓库)
第一步:添加文件
$ git add . 添加所有的文件、文件夹
$ git add 添加指定名称的文件,<>内部写文件全称
注:如果文件没有做出任何修改,则默认不会添加任何文件
第二步:提交文件
$ git commit –m “commit info”
提交本次事务,即将add的文件提交到git仓库,引号内部表示本次提交的提示信息
第三步:查询提交状态
$ git status
显示提交的状态:已经添加,等待提交事务的文件(绿色字体表示);已经改变但是没有添加(not staged)的文件(红色字体表示);
第四步:将本地分支的更新,推送到远程主机
$ git push <远程主机名> <本地分支名>:<远程分支名>
或
$ git push 远程地址 master
注意,分支推送顺序的写法是<来源地>:<目的地>,所以git pull是<远程分支>:<本地分支>,例:git pull origin master,而git push是<本地分支>:<远程分支>,例:git push origin master。
取回远程主机某个分支的更新,再与本地的指定分支合并
$ git pull <远程主机名> <远程分支名>:<本地分支名>
查询该文件和git仓库中的文件的区别,即做了什么修改
$ git diff <文件全称>
如果已经add了,就打印不出有什么修改了,这一步骤应该在add之前,即添加之前可以用来看看做了什么修改。
打印历史记录
$ git log
Commit commit id 版本号
Author:xxx提交人和邮箱
Date:提交的时间
commit提交的信息(所以说,提交信息很重要!!!)
$ cat <文件全名称> 显示整个文件的内容
版本回退
$ git reset --hard head^
在Git中,HEAD表示当前版本,就是最新提交的版本,即使用git log打印出来的位于第一位的版本,上一个版本就是HEAD^,上上个版本就是HEAD^^,当前向上100个可以写成HEAD~100。当然,还有一种方式就是直接使用commit id来代替HEAD^,比如版本号是cadab353589f3eef075817b890dafe8b722d802b,
那么就可以直接使用命令:
$ git reset --hard cadab353589f 使用前几位表示即可,git会自动查找
注:版本回退以后,使用git log打印的历史记录都是回退版本之前的数据,之后的都没有了,不过放心,git总有后悔药可以吃哒~
1.如果命令行窗口没有关闭,直接去前面找commit id即可;
2.如果命令行窗口关闭了,或者第二天后悔了,可以进入到该目录下,使用git reflog命令来查看以前的每一次命令,可以获得每次提交的commit id,就可以版本回退了。
$ git reflog 可以查看命令历史,包含提交的commit id
使用克隆命令将远程仓库的代码复制一份到本地,注意此处应该用https访问
$ git clone https://***.***.***.***/android/salestool.git
输入用户名和密码之后,将开始下载远程仓库,这里仅仅下的是主分支-master
查看仓库的分支情况
$ git branch –a
显示如下:
* master
remotes/origin/HEAD -> origin/master HEAD-远程仓库的当前分支是主分支
remotes/origin/dev dev分支(所有操作都会合并到该分支)
remotes/origin/master master分支-主分支
创建本地仓库的dev分支
$ git checkout -b dev
将远程仓库的dev分支代码复制到本地dev分支
$ git pull origin dev
切换到本地dev分支,并将远程仓库的dev分支的最新代码拉下来
$ git checkout dev
$ git pull origin dev
(此时,本地仓库的dev分支已经确保是最新的了)
切换到自己的分支my,将dev分支合并到自己的分支上
$ git checkout my
$ git merge dev 将本地dev分支合并到自己的my分支上
注意:此时已经将dev分支合并到本地的自己的分支上了,有时候可能需要解决代码冲突问题,解决完毕后进行下面的操作。
如果有冲突,则需要再次进行add,commit操作。
推送到远程服务器
$ git push origin dev
忽略文件
有一些文件并不能上传到git上。
1.Android Studio自动生成配置文件:不能上传到git上,否则的话,如果你的同事下载下来,但是它的studio(gradle)版本和你的不一样,或者其他配置的各种路径不一样,就需要重建项目,严重的话,根本无法重建项目,一片爆红!网上的方法也解决不了。
2.保存了数据库密码或者什么不能上传的文件。
所以需要在项目的根目录下创建一个名称为.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件。
不需要从头写.gitignore文件,GitHub已经为我们准备了各种配置文件,只需要组合一下就可以使用了。
忽略文件的原则是:
1.忽略操作系统自动生成的文件,比如缩略图等;
2.忽略编译生成的中间文件、可执行文件等,也就是如果一个文件是通过另一个文件自动生成的,那自动生成的文件就没必要放进版本库,比如Java编译产生的.class文件;
3.忽略你自己的带有敏感信息的配置文件,比如存放口令的配置文件。
$ cat.gitignore
*.[oa]
*~
第一行告诉 Git 忽略所有以.o或.a结尾的文件。一般这类对象文件和存档文件都是编译过程中出现的,我们用不着跟踪它们的版本。第二行告诉 Git 忽略所有以波浪符(~)结尾的文件,许多文本编辑软件(比如 Emacs)都用这样的文件名保存副本。此外,你可能还需要忽略log,tmp或者pid目录,以及自动生成的文档等等。要养成一开始就设置好.gitignore文件的习惯,以免将来误提交这类无用的文件。
文件.gitignore的格式规范如下:
所有空行或者以注释符号#开头的行都会被 Git 忽略。
可以使用标准的 glob 模式匹配。
匹配模式最后跟反斜杠(/)说明要忽略的是目录。
要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(!)取反。
所谓的 glob 模式是指 shell 所使用的简化了的正则表达式。星号(*)匹配零个或多个任意字符;[abc]匹配任何一个列在方括号中的字符(这个例子要么匹配一个 a,要么匹配一个 b,要么匹配一个 c);问号(?)只匹配一个任意字符;如果在方括号中使用短划线分隔两个字符,表示所有在这两个字符范围内的都可以匹配(比如[0-9]表示匹配所有 0 到 9 的数字)。
我们再看一个.gitignore文件的例子:
# 此为注释 – 将被 Git 忽略
# 忽略所有 .a 结尾的文件
*.a
# 但 lib.a 除外
!lib.a
# 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO
/TODO
# 忽略 build/ 目录下的所有文件
build/
# 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt
doc/*.txt
Git Gui简单使用
注意:个人建议使用命令行方式进行版本管理,但是可以使用图形化界面看本次代码的改动,比较方便。
1. 在所在项目,右键选择git gui
2. 界面如下,如果会使用命令行,那么一看就明白了
3. 配置
UTF-8:Edit-Options:
如果之前设置好了,直接在项目中右键进入,那么这些都不用设置:
4. Add commit push很快完成,不用输i入命令
5. 查看代码对比
如果想要查看所有的改动历史,可以:
就可以看到所有的代码改动历史,而不用去网上看。注意,这里能看到所有人的改动哦!!!非常强大!
6. 设置和远程仓库关联(如果从项目根目录进入,则自动关联,不用设置)
如果需要设置,选择remote-Add,参考如下:
7. 新建项目,从远程仓库克隆
右键选择git gui:
选择克隆已有版本库:
网友评论