工具android源码程序猿学习

Git常用命令整理记录

2017-08-04  本文已影响1053人  Dollkey
帮助Git理解  图片来源:http://www.cnblogs.com/houpeiyong/p/5890748.html

Git命令:

--基础使用--

用户名:git config --global user.name "<Your Name>"

邮箱:git config --global user.email "<email@example.com>"

换行符自动转换:git config --global core.autocrlf false

      param: commit & checkout 

                  true:  -> LF & -> CRLF 

                  false: null & null

                  input: -> LF & null

回车换行符避免混淆:git config --global core.safecrlf true

      true/false:拒绝/允许提交包含混合换行符的文件

      warn:给出警告

创建版本库:git init

克隆:git clone git@github.com:<UserName/ProjectName>.git

关联远程库:git remote add origin git@server-name:path/repo-name.git

提交到远程库:git push -u origin master(第一次推送带参数-u  之后不带)

查看远程库:git remote

从远程库拉取并merge:git pull origin master

从远程库拉取不自动merge:git fetch origin master

减小仓库体积:

      git filter-branch--tree-filter 'rm -f path/to/large/files' --tag-name-filter cat -- --all

      git push origin--tags --force

      git push origin--all --force

--版本控制--

查看当前状态:git status

差异比较:git diff

添加到暂存区(stage):git add

提交到版本库:git commit -m "<Note>" <FileName>(FileName可填)

查看日志:git log (按q退出日志查看)

      每条log只显示一行:git log --pretty=oneline

查看命令历史:git reflog

版本回退:git reset --hard HEAD^ (HEAD^是上个版本,HEAD^^是送上个版本,HEAD~100是往上100个版本)

      git reset --hard <Commit_Id>(版本号,版本号可不全写)(即调整内部HEAD指针)

                    --soft 只修改版本库的内容

                    --mixed (默认值) 修改版本库与暂存区的内容,不修改工作区内容

                    --hard 全部回退

文件检出:git checkout -- <FileName>(eg. git checkout -- ReadMe.txt)

      (reset --hard 回退会覆盖已修改的内容,checkout -- 不会覆盖已修改的内容)  

创建回退版本:git revert HEAD^

      备注:只修改了工作区文件,没add到暂存区,使用git checkout -- <FileName>

                已经add到了暂存区,使用git reset HEAD,然后执行git checkout -- <FileName>

                已经commit到了版本库中,还没推送到远程库时,使用git reset --hard HEAD^

                revert回退版本为,创建一个新的旧版本,并不修改Git版本库历史内容

文件删除:git rm <FileName>

--分支管理--

查看分支:git branch

创建分支:git branch <BranchName>

切换分支:git checkout <BranchName>

重置分支:git reset <BranchName>

创建+切换分支:git checkout -b <BranchName>

合并某分支到当前分支:git merge <BranchName>

合并某分支到当前分支(不使用Fast Forward模式):git merge --no-ff <BranchName>

删除分支(merge后):git branch -d <BranchName>

删除分支(merge前):git branch -D <BranchName>

查看分支合并图:git log --graph

      查看特定分支日志:git log <BranchName>

储存分支当前状态:git stash

查看储存列表:git stash list

恢复储存状态:git stash apply

指定恢复某个状态:git stash apply stash@{0}

删除储存内容:git stash drop

恢复储存状态并删除储存内容:git stash pop

--标签管理--

查看所有标签:git tag

新建标签:git tag <TagName> <Commit_Id>(Commit_Id(版本号)可不填,默认值为HEAD)

创建带有说明的标签:git tag -a <TagName> -m "<Note>" <Commit_Id> (Commit_Id可不填,默认值为HEAD)

创建带有签名的标签:git tag -s <TagName> -m "<Note>" <Commit_Id> (Commit_Id可不填,默认值为HEAD)(前提是必须有GPG私钥)

查看标签信息:git show <TagName>

推送一个本地标签:git push origin  <TagName>

推送全部未推送过的本地标签:git push origin --tags

删除一个本地标签:git tag -d <TagName>

删除一个远程标签:git push origin :refs/tags/<TagName>


第一次尝试写文章,只是用于本人学习过程中的记录,并方便之后使用时查看。如果能帮助到你那就给个赞吧。


参考:

码云平台帮助文档

廖雪峰的Git教程

git的reset和checkout的区别

代码回滚:git reset、git checkout和git revert区别和联系

上一篇下一篇

猜你喜欢

热点阅读