一:本地基本使用
设置用户名和邮箱
git config –globaluser.name “***”
git config –globaluser.email “***”
查看用户信息
git config –l
创建仓库,cd到指定位置后下命令即可
git init
添加、提交文件,查看状态。在git目录中新建文件后,使用下面命
git status | 查看状态 |
git add “文件名” | 添加文件到暂存区 |
git add . | 添加所有文件到暂存区 |
git commit –m “注释内容” | 提交 |
git commit -a –m “注释内容” | 添加所有到暂存区并提交 |
git log | 查看日志,后面可以跟指定文件 |
git log –pretty=oneline |
|
git diff | 查看不同 |
git diff HEAD/master “文件名” |
|
版本回退:
gitreset –head HEAD~1 // ~在Esc下面
gitreset –head "commitid"// commitid可以在log中看到
gitreflog //已删除的commitid
撤销修改:
①在未增加(git add)与提交前(gitcommit)。
gitcheckout – “文件名”
②在已增加(git add)与提交前(gitcommit)
撤销暂存区操作:gitreset HEAD
丢掉已经修改的文件内容: gitcheckout – “文件名”
删除文件:
磁盘直接删除,可以使用gitstatus 查看状态,git commit –a –m”注释”一下就可以啦。
二:远程仓库
ssh-keygen –t rsa –C “邮箱” | 生成SSH KEY: 然后再github上添加Key |
git remote add origin 仓库http url | 把GITHUB与本地仓库关联:使用http协议 |
git push –u origin master | 将所有内容推送到GITHUB上 |
git remote set-url origin仓库http url | 切换仓库 |
git remote -v | 查看远程仓库信息 |
git remote rm 仓库名 | 删除仓库 |
git push origin master | 推送分支,master分支 |
git clone仓库http url | 克隆仓库 |
三:分支管理
git branch | 查看分支,可以看到当前所处分支 |
git branch brh | 创建brh分支 |
git checkout brh | 切换到brh分支 |
git checkout –b brh | 创建并切换到brh分支 |
git merge brh | 合并brh分支,要切换到master分支 |
git branch –d brh | 删除本地brh分支,如果未合并则无法删除 |
git checkout –D brh | 强行删除brh分支 |
git push origin master | 提交master分支 |
git push origin brh | 提交brh分支 |
git push origin –delete brh | 删除远程brh分支 |
git log –graph –pretty=oneline |
|
git merge –on-ff –m “no ff commit注释” brh | 非快速合并brh分支 |
git stash | 当前分支暂存 |
git stash list | 查看暂存分支 |
git stash apply git stash drop | 先恢复后删除暂存 |
git stash pop | 恢复同时会删除暂存 |
git diff master > mypat | 生成mypat标准补丁 |
git apply mypat | 在新的分支上使用补丁 |
git format-patch –M maser | 生成git专用补丁-M参数是指定分支 |
多人协作开发:
①git clone仓库http url
②git branch –a,查看分支,只是将maser分支拷贝下来。要在brh分支还需拷贝下来
③git checkout –b brh 新建brh分支,
④git merge origin/brh将远程服务器端的brh分支的内容拷贝到本地分支上
⑤代码完成
⑥git push origin brh 将分支代码提交到服务器
⑦其他人使用时:
git fetch:只是获取最新分支数据,但是不会发生merge合并操作
git pull: 获取最新分支数据,发生merge合并操作
使用前还需要和服务器上brh关联:git branch–set upstream-to=origin/brh
四:标签管理
为master定义标签: git tagv1.0
为指定的commitid定义标签: git tagv1.0 commitid ,gittag –m “注释” v1.0 commitid
git tag //查看所有标签
git show v1.0 //查看标签完整信息
git log –pretty=oneline –abbrev-commit
git tag –d v1.0 //删除标签
git push origin v1.0 //提交标签到服务器
git push origin –tags //提交所有标签到服务器
git push origin :ref/tags/v1.0 // 删除远程标签
五:忽略特殊文件
编写.gitignore文件,格式如下:
*.class
# Mobile Tools for Java (J2ME) .mtj.tmp/
# Package Files # *.jar *.war *.ear
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml hs_err_pid* |
添加文件:git add .gitignore
提交文件:git commit –m “add .gitignore file”
此时*.class,*.jar等不在被加入