安装git,可以直接去git官网,但是下载的比较慢,
可以使用国内的镜像:http://npm.taobao.org/mirrors/git-for-windows/
安装之后在Windows键按下后会出现:
我们使用Git Bash即可
有关git中的命令
cd .. //用于返回上一级目录 cd 子目录名 //进入当前路径下对应的子目录 pwd //显示当前所在的目录路径 clear //用于清屏 ls //用于显示当前目录下有哪些文件,蓝色的是目录,绿色的是程序,白色的是文件 touch 文件名.后缀 //用于创建文件的命令 rm 文件名.后缀 //用于删除文件 mkdir 目录名 //用于创建目录 rm -r 目录名 //用于删除目录 mv 文件 目录 //把文件移动到目录下 reset //重新初始化终端,类似与clear history //查看刚才使用的所有命令 exit //退出命令窗口
git中全局变量的配置
git config --global user.name "dongmu" #添加配置,这里引号可以不写 git config --global user.name 2645990605@qq.com #添加配置
git config --global --list #用于查看自己配置的内容
这两个信息是必须要配置的,相当于你告诉git你是谁,不然就不知道是谁提交的,不配置的话就提交不上项目,
git config -l
查看所有的配置信息
git congif --system --list
这个命令可以看到系统给我们配置之了哪些东西
要知道配置文件都是在本地的,git也一样,他的配置信息在Git/etc/gitconfig这里,打开可以看到:
[diff "astextplain"] textconv = astextplain [filter "lfs"] clean = git-lfs clean -- %f smudge = git-lfs smudge -- %f process = git-lfs filter-process required = true [http] sslBackend = openssl sslCAInfo = D:/JAVA/git/Git/mingw64/ssl/certs/ca-bundle.crt [core] autocrlf = true fscache = true symlinks = false [pull] rebase = false [credential] helper = manager-core [credential "https://dev.azure.com"] useHttpPath = true [init] defaultBranch = master
想要查看我们自己的配置的变量在
打开之后可以看到我们自己配置的用户名和密码。
[user] name = dongmu email = 2645990605@qq.com [credential "https://gitee.com"] provider = generic
git基本理论:
Workspace:工作区(当前用户操作修改的区域)
Index / Stage:暂存区 (add后的区域)git add .
Repository:仓库区或本地仓库(commit后的区域) git commit
Remote:远程仓库(push后的区域)
基本使用命令
1:git init #初始化本地仓库库的方法 2: git status #查看所有文件状态 3:git add . #添加所有文件到暂存区 4:git commit -m #“消息内容” #提交暂存区的内容到本地仓库 4:git push -m #“消息内容” #提交本地仓库的内容到远程仓库
.git文件夹是git init后在当前目录生成的一个管理git仓库的文件夹,这里包含所有git操作所需要的东西
在.git目录下面有一个HEAD文件里面写的是ref: refs/heads/master
这个master是主分支,是唯一的,我们一般不会直接在这个上面做东西,我们会建立自己的分支。现在指向的是主分支那么我们的代码就会提交到这个分支上面去。
.git目录下还有一个是index文件,这个文件指向暂存区,上面图片中已经说了。
hooks(钩):存放一些shell脚本
Info:exclude:存放仓库的一些信息
logs:保存所有更新的引用记录
ok,上面都是理论的内容,那么如何建立一个git项目?
先建一个空的文件夹存放你的项目。在这个文件夹中右键打开Git Bash。执行一个命令git init 这时候你这个目录下面就会多一个.git的文件夹。 我们如果不想创建也可以克隆一个远程的git项目到本地。到github或者gitee上面都有如下图所示,我们复制这个链接,然后再本地先建立一个新的文件夹来放置我们的项目,在这个文件夹中打开GitBash。 然后执行git clone 路径 这样就可以了。
下面来说一下文件的4种状态:
Untracked: 未跟踪, 此文件在文件夹中, 但并没有加入到git库, 不参与版本控制. 通过git add 状态变为Staged Unmodify: 文件已经入库, 未修改, 即版本库中的文件快照内容与文件夹中完全一致. 这种类型的文件有两种去处, 如果它被修改, 而变为Modified. 如果使用git rm移出版本库, 则成为Untracked文件 Modified: 文件已修改, 仅仅是修改, 并没有进行其他的操作. 这个文件也有两个去处, 通过git add可进入暂存staged状态, 使用git checkout 则丢弃修改过, 返回到unmodify状态, 这个git checkout即从库中取出文件, 覆盖当前修改 Staged: 暂存状态. 执行git commit则将修改同步到库中, 这时库中的文件和本地文件又变为一致, 文件为Unmodify状态. 执行git reset HEAD filename取消暂存, 文件状态为Modified
我们先建一个空的git项目
首先查看一下文件状态:
然后我们写一个文件假如是hello.txt在.git同级目录下,然后继续查看:
然后执行git add . :给他加入到暂存区。然后继续查看:
然后commit提交到本地仓库,执行:git commit -m ;这话-m表示message。相当于是一个注释,一种通知的作用,比如我们提交到远程的时候告诉别人这个版本做了哪些更改
结果如下:
总结:所以我们工作中一般把我们的代码放在.git同级目录下面,然后使用git add .给它添加到暂存区,然后通过git status查看是否提交进去,如果提交进去了就commit提交到本地仓库,如果连接了远程那么就在push到远程就可以了。 如何连接远程以及设置下面说。
一些细节:比如我们项目中有一些文件不需要提交到远程仓库,比如我用用IDEA开发的时候目录中会有一些其他的辅助的文件等待各种信息,这时候怎么办? 有一个.ignore文件可以实现,它的一些语法如下: logs/:忽略当前路径下的logs目录,包含logs下的所有子目录和文件 /logs.txt:忽略根目录下的logs.txt文件 *.class:忽略所有后缀为.class的文件 !/classes/a.class:不忽略classes目录下的a.class文件 tmp/*.txt:只忽略tmp目录下的.txt文件 **/foo:可以忽略/foo, a/foo, a/b/foo等 定义全局的.gitignore文件 除了可以在项目中定义.gitignore文件外,还可以设置全局的.gitignore文件来管理所有Git项目的行为。 这种方式在不同的项目开发者之间是不共享的,是属于项目之上Git应用级别的行为。 可以在任意目录下创建相应的.gitignore文件,然后再使用以下命令配置Git git config --global core.excludesfile ~/.gitignore .gitignore规则不生效 .gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。所以一定要养成在项目开始就创建.gitignore文件的习惯。 解决方法就是先把本地缓存删除(改变成未track状态),然后再提交: git rm -r --cached . git add . git commit -m "msg" 作者:若兮缘 链接:https://www.jianshu.com/p/1c74f84e56b4 来源:简书 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
通用的.gitignore的配置模板: #java *.class #package file *.war *.ear *.zip *.tar.gz *.rar #maven ignore target/ build/ #eclipse ignore .settings/ .project .classpatch #Intellij idea .idea/ /idea/ *.ipr *.iml *.iws # temp file *.log *.cache *.diff *.patch *.tmp # system ignore .DS_Store Thumbs.db
好了下面我们就要说一下怎么配置远程仓库了
github是国外的我们这里就不用了很慢。
1:我们自己注册一个gitee,完善个人信息。这个我们一定要认真对待,其实这都是一个人的习惯问题,养成好习惯,成就好未来,这些东西我们认真对待了为什么以后不能作为我们的一个优势呢?
我们可以在这个上面找一下开源的项目,自己学习,如果要商用,需要看它的许可协议是否允许,千万不要做违法的事情。
回到正题:
2:绑定本机SSH公钥,这个为了实现免密登录。码云是远程仓库,我们工作的时候是在本地仓库。
打开我们gitee的公钥:
打开下面的目录中的文件,这个目录只要是安装了git就会有。我们如果之前没有配置过这个里面就是空的,然后在这个里面启动gitbash,使用命令keygen -t rsa
命令。这个rsa是加密算法,我们可以选中其他的,不过这个是官方推荐的。我们就用这个。
回车之后一路直接回车,然后就会生成两个文件,带pub的是公钥,不带的是私钥。我们打开公钥,复制里面的内容。
然后粘贴到我们码云的这个位置:
然后生成就可以了。如下:
这个前面红框里面的意思是我们前面配置信息的时候输入了邮箱,那么这里就会是邮箱,没有的话就是本机的名称。
完成之后就是下面这样子:
新建一个远程仓库:
许可证就是设置开源是否可以商用等待问题的 。
然后我们把他下载下来
然后对比可以发现他们的目录是一样的:
用IDEA集成git
我们直接把从gitee上面拉取的代码复制粘贴到我们的项目目录就可以了
然后rebuid一下我们的项目
先add上去,文件由未跟踪状态变成暂存状态:
如果我们不add我们点击提交,会出现下面界面:
add之后提交出现的是下面的界面:对号也可以不去掉
可以发现add进去之后都变成绿色的了。
基本的命令也可以在文件上右键:
然后继续提交
现在我们以及把项目提交到了本地仓库,但是远程还是没有的,我们执行git push
这时候再来看我们的gitee
之后我们再项目了添加新的代码:
然后提交到本地仓库,再push到远程仓库
上面都是git中一个人的操作,但是多个人怎么协作开发?
git分支