Git|Git Study

Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,,上一个版本就是HEAD,上上一个版本就是HEAD,当然往上100个版本写100个比较容易数不过来,所以写成HEAD~100。
现在,我们要把当前版本A ,回退到上一个版本“B”,就可以使用git reset命令:

` git reset --hard HEAD^` HEAD is now at ea34578 B

也可以查询版本 :git log pretty =oneline
显示出 所有 提交 版本记录,选择 id
执行 git rest --hard id即可。
HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id
穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。
要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。
git clean -fd git clean -xdf

用于删除本地未提交到trunk的文件
git push origin --delete 删除远程分支
git branch -r查看远程分支
分支拉取master分支的代码
git checkout master
git pull
git checkout Usage-Report
git merge master
git push
远程仓库相关命令 检出仓库:git clone git://github.com/jquery/jquery.git
查看远程仓库:git remote -v
添加远程仓库: git remote add [name] [url]
删除远程仓库:git remote rm [name]
修改远程仓库:git remote set-url -- push [name][newUrl]
拉取远程仓库:git pull [remoteName] [localBranchName]
推送远程仓库:git push [remoteName] [localBranchName]
分支(branch)操作相关命令 查看远程分支git branch -r
查看远程和本地的所有分支git branch -a
查看本地分支和当前分支 带*的为当前分支git branch
创建本地分支git branch branchName 注意新分支创建后不会自动切换为当前分支
切换分支 git checkout branchName
创建新分支并立即切换到新分支git checkout -b branchName
删除本地分支 git branch -d /-D branchName
删除远程分支git push origin --delete BranchName
创建远程分支(本地分支push到远程)git push origin branchName
git push origin test:master // 提交本地test分支作为远程的master分支 //好像只写这一句,远程的github就会自动创建一个test分支
git push origin test:test // 提交本地test分支作为远程的test分支
如果想删除远程的分支呢?类似于上面,如果:左边的分支为空,那么将删除:右边的远程的分支。
git push origin :test // 刚提交到远程的test将被删除,但是本地还会保存的,不用担心
git checkout -b 本地分支名 origin/远程分支名 拉取远程分支到本地某个分支上
git fetch origin master:tmp
//在本地新建一个temp分支,并将远程origin仓库的master分支代码下载到本地temp分支
git diff tmp
//来比较本地代码与刚刚从远程下载下来的代码的区别
git merge tmp
//合并temp分支到本地的master分支
git branch -d temp
//如果不想保留temp分支 可以用这步删除
查看当前详细分支信息(可看到当前分支与对应的远程追踪分支):
git branch -vv
查看当前远程仓库信息
git remote -vv
【Git|Git Study】git pull相当于git fetch 和merge的结合
版本(tag)操作相关命令 查看版本:git tag
创建版本:git tag [name]
删除版本:git tag -d [name]
查看远程版本:git ls-remote --tags origin
创建远程版本(本地版本push到远程):git push origin [name]
删除远程版本:git push origin :refs/tags/[name]
若存在很多未推送的本地标签,你想一次全部推送的话,可以使用一下的命令:
git push origin --tags
子模块(submodule)相关操作命令 添加子模块:git submodule add [url] [path]
如:$ git submodule add git://github.com/soberh/ui-libs.git src/main/webapp/ui-libs
初始化子模块:git submodule init----只在首次检出仓库时运行一次就行
更新子模块:git submodule update----每次更新或切换分支后都需要运行一下
删除子模块:(分4步走哦)
1)git rm --cached [path]
  1. 编辑“.gitmodules”文件,将子模块的相关配置节点删除掉
  2. 编辑“.git/config”文件,将子模块的相关配置节点删除掉
  3. 手动删除子模块残留的目录
忽略一些文件、文件夹不提交 在仓库根目录下创建名称为“.gitignore”的文件,写入不需要的文件夹名或文件,每个元素占一行即可,如
target
bin
*.db

    推荐阅读