赞
踩
HEAD所指向当前版本
HEAD^ 上1个版本
HEAD^^ 上2个版本
HEAD~1 上1个版本
HEAD~2 上2个版本
使用git log查看历史版本记录:
$ git log --oneline
查看某文件的历史提交记录
$ git log filename
使用git reflog查看历史版本记录:
$ git reflog
提交到本地版本库:
$ git commit -a -m '第n次提交,新增内容:'
查看本地所有标签:
$ git tag 或者 git tag –l
查看远程所有标签:
$ git ls-remote --tags origin
基于当前所在commit-id创建标签:
$ git tag –a <tag_name>
$ git tag -a <tag_name> -m "标签"
以某一个特定的提交为tag
$ git tag –a <tag_name> <commitid>
把本地某一个标签推送到远程:
$ git push origin <tag_name>
把本地所有标签推送到远程:
$ git push origin –tags
查看本地某个标签的详细信息:
$ git show <tag_name>
切换标签:
$ git checkout <tag_name>
删除本地标签
$ git tag -d <tag_name>
删除远程标签
$ git push origin :refs/tags/<tag_name>
例子:把<tag1_name>标签重命名为<tag2_name>标签
$ git tag <tag2_name> <tag1_name>
$ git tag -d <tag1_name>
$ git push origin :<tag1_name>
$ git push --tags
比对工作区与暂存区中文件的差异:
$ git diff readme.txt
比对暂存区与本地版本库中文件的差异:
$ git diff --cached readme.txt
比对工作区与本地版本库中文件的差异:
$ git diff HEAD readme.txt
查看两个文件之间的差异:
$ git diff <file1> <file2>
这个对比是在本次修改和某次提交之间进行的:
$ git diff <commit id> <file>
查看两个分支间的区别:
$ git diff branch1 branch2
查看两次提交之间的有差异的文件:
$ git diff <commit 1> <commit 2> --stat
查看暂存区中的文件列表:
$ git ls-files
查看本地版本库中的文件列表:
$ git ls-files --with-tree=HEAD
git show comitid
git show commitid:filename
git show commitid filename
git rm --cached filename
:仅删除暂存区中的指定文件。git rm filename
:删除工作区和暂存区的文件。git commit
命令进行提交,可以将本地库中的文件文件也删除。当执行 git checkout .
或者 git checkout -- <file>
命令时,会用暂存区全部或指定的文件替换工作区的文件,会清除工作区中未添加到暂存区中的改动,即撤销本地工作目录的修改。【缓存区的文件还存在,以缓存区为标准,使工作区和它一致】
如果文件已添加到暂存区,可使用git reset HEAD <file>
命令将缓存区同步到指定提交。
当执行 git checkout HEAD .
或者 git checkout HEAD <file>
命令时,会用 HEAD 指向的
master 分支中的全部或者部分文件替换暂存区和以及工作区中的文件。 【但是不会清除新增的文件。】
git checkout 支持检出指定目录、文件,通过sparse-checkout文件定义要检出目录。
将new_branch分支的内容合并到master分支:
Fetch and check out the branch for this merge request
git fetch origin
git checkout -b new_branch origin/new_branch
Merge the branch and fix any conflicts that come up
git checkout master
git merge --no-ff new_branch
Push the result of the merge to GitLab
git push origin master
如果想从其他分支合并某次的commit,可以使用git cherry-pick
用法:git cherry-pick <commit id>
在首次commit时,都会提示要配置username、useremail:
$ git config --global user.name “name”
$ git config --global user.email “email”
配置命令别名:
如用co表示checkout
$ git config --global alias.co checkout
查看已有的配置信息:
$ git config --list
对于不想纳入git管理的文件,可以在仓库根目录下创建一个名为 .gitignore 的文件,列出要忽略的文件模式。下面看一个 .gitignore 文件的例子:
# 此为注释 – 将被 Git 忽略 # 忽略所有 .a 结尾的文件 *.a # 但 lib.a 除外 !lib.a # 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO /TODO # 忽略 build/ 目录下的所有文件 build/ # 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt doc/*.txt # 忽略 doc/ 目录下所有扩展名为 txt 的文件 doc/**/*.txt #跟踪某类文件 !*.c #跟踪某个文件夹 !/plutommi/mmi
提交空目录
Git仅仅跟踪文件的变动,不跟踪目录
在要上传的空目录下创建.gitkeep文件
设置忽略文件权限变更
在git仓库中命令行下执行git config core.fileMode false
本地删除或修改文件后如何获取远程的该文件
$ git fetch
$ git checkout origin/remotebranch filename
如何放弃本地修改,用远程库最新内容强制覆盖本地代码
$ git fetch
$ git reset --hard origin/master
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。