1.工做区 当前直接操做的内容java
2.暂存区 临时存放改变的内容git
3.版本库 仓库中保存的内容github
1.git add缓存
暂存区目录树更新ssh
修改或者增长的文件内容会写到对象库中的对象中工具
2.git commiturl
暂存区目录树写到版本库中spa
3.工做区和暂存区比较日志
git diff netty
4.暂存区和HEAD比较
git diff --cached
3.工做区和HEAD比较
git diff HEAD
1.git status
查看文件修改状况
2.git add [filename]
添加已修改的文件名
3.git commit -m "reason for commit"
将已加入的文件进行提交 并附上提交说明
4.git push origin master
把本地commit同步到远程仓库master分支
1.git grep hello
在搜索全部工做区文件包含hello的内容
2.git clone url localName
克隆一份拷贝到本地
2.1 git clone url localName --bare
拷贝一份裸仓库到本地
3.git log --stat
git log 可以查看全部提交的日志。 加上--stat表示显示每次提交文件变动统计
4.git diff filePath
对比修改的内容
5.git commit --ament -m "sasdasd"
提交到上一次的commit中,而且修改提交说明
6.git stash
将工做区和暂存区的改动所有封存起来
7.git branch
查看全部分支,带星号的是当前所在分支
8.git branch work
建立名为work的分支
9.git checkout work
切换到名为work的分支
git只有在根目录存在.git目录,这是工做区对应的版本库。
10.git config --global alias.st status
给git status 中 status设置别名为st
11.git init demo
初始化版本库demo
12. git init demo --bare
建立一个裸仓库,裸仓库的意思就是仓库不保留工做区的内容。只有设置这个才能让别人push代码。为何要裸仓库才能被push,原意很简单,假设仓库有不少分支,每一个分支的工做区可能不同,这样以那个分支做为工做区呢?工做区对于不是用来开发的共享仓库有什么意义呢?因此做为集中的共享仓库是没有工做区的。
1.git reset --hard HEAD^
这个命令的意思是撤销前一个提交,不把以前的提交撤销到缓暂存区。
若是使用参数--soft,就是撤销前一个提交,并放入缓存区。
2.git reset --hard HEAD^
这个命令是很是危险的,不过在git里面文件的修改记录依旧保存在.git中的objects目录。咱们依然能够找回来。
方法就是使用git reflog,这个能够看到全部的历史操做记录,而后找到上一次提交的sha1的值,经过git reset sha1值就能回到上一次提交的时间点。
git cherry-pick dc4de390ec48ee389ff93924c9b587a5d343e7a0
git tag -m "message for tag" tag_1.1.0 <commitID>
针对某个提交为止打tag。
tag只是默认只是本地可见,须要显示推送到远程仓库
gerrit能够认为git代码审核工具。是用java写的。
gerrit自己基于ssh协议实现了一套Git服务
--------推送项目到git仓库
git remote add origin git@github.com:lubby1990/netty-test.git
参考文献:Git权威指南 蒋鑫