Git权威整理

下面是我整理的常用 Git 命令清单。几个专用名词的译名如下。
  • Workspace:工作区
  • Index / Stage:暂存区
  • Repository:仓库区(或本地仓库)
  • Remote:远程仓库
一、新建代码库
# 在本地新建一个Git代码库
      $ git init      初始化一个Git库    
或   $ git init [project-name]    新建一个目录,将其初始化为Git代码库
 
# 增加远程服务器端地址, origin代表设置远程服务器端别名,可以修改,默认设置为origin,
在使用git init 创建本地Git代码库后,需要使用该语句绑定远程服务器url
$ git remote add origin [url]
 
# 从远程仓库克隆一个本地仓库  如果已有远程服务器并且有现有代码,则使用该语句
$ git clone [url]
 
二、 配置
Git的设置文件为.gitconfig,它可以在用户主目录下(全局配置),也可以在项目目录下(项目配置)。
# 显示当前的Git 配置
$ git config --list
 
#编辑Git配置文件
git config -e [--global]
 
#设置提交代码时的用户信息
$ git config [--global] user.name '[name]'
$ git config [--global] user.email '[email]'
 
三、增加/删除文件到暂存区
1、添加文件到暂存区
$ git add [file1] [file2] ...                 # 添加指定文件到暂存区
$ git add [dir]                                 # 添加指定目录到暂存区,包括子目录
$ git add .                                       # 添加修改过的所有文件到暂存区
 
2、删除工作区文件
$ git rm [file1] [file2] ...                  # 删除工作区文件,并且将这次删除放入暂存区
$ git rm --cache [file]                    #保留工作区文件,并且将这次删除放入暂存区         
 
3、修改文件名
$ git mv [file-original] [file-renamed]         # 改名文件,并且将这个改名放入暂存区
 
四、 代码提交到本地仓库
1、从暂存区提交到本地仓库
$ git commit -m [message]                                  # 提交暂存区到仓库区
$ git commit -m [file1] [file2]... -m [message]     #提交暂存区的指定文件到仓库区
$ git  commit --amend -m [message]                    # 使用一次新的commit,替代上一次提交,如果代码没有任何新变化,则用来                                                                                      改写上一次commit的提交信息
$ git commit --amend [file1] [file2]                        #重做上一次commit ,并包括指定文件的新变化
 
五、分支
1、查看分支
$ git branch                                         #列出所有本地分支
$ git branch -r                                     #列出所有远程分支
$ git branch -a                                    #列出所有本地分支和远程分支
 
2、新建分支
$ git branch [local-branch-name]             #新建一个本地分支,但依然停留在当前分支上
$ git checkout -b [local-branch-name]     #新建一个本地分支,并切换到该分支
$ git branch --track  [local-branch-name] [remotename/remotebranch] 或 git checkout -b [local-branch-name][remote/rem otebranch]                                          #新建一个本地分支,与指定的远程分支建立追踪关系
 
3、分支绑定
$ git branch --set-upstream-to = [remotename]/[remote_branch]  [local-branch-name]           # 建立追踪关系,在现有的本地分支与指定的远程分支之间
 
4、切换分支
 
$ git checkout [local-branch-name]                   #切换到指定分支,并更新工作区
$ git checkout  -                                                  #切换到上一分支
 
5、合并分支
$ git merge [local-branch-name]                         #合并指定分支到当前分支
$ git  merge --no-ff -m '说明' 分支名                    #合并指定分支到当前分支,保留分支合并记录
$ git cherry-pick [commit]                                    # 选择一个commit ,合并进当前分支
 
6、删除分支
$ git branch -d [local-branch-name]                     #删除本地分支
$ git branch -D [local-branch]                                #强制删除未合并的本地分支
$ git branch -dr [remotename/remote-branch-name]    #删除远程分支
 
六、标签
1、列出所有标签
$ git tag                                                            #列出所有tag
 
2、新建标签
$ git tag  [tagname]                                                 #新建一个tag在当前commit
$ git tag [tagname] [commit]                                            #新建一个tag在指定commit
$ git tag -a [tagname] -m 'comment' [commit]                #创建带有说明的标签
 
3、查看某个标签
$ git  show [tagname]                                                        #查看某个tag信息
 
4、删除标签
$ git tag -d [tagname]                                                    #删除本地tag
$ git push origin :refs/tags/[tagName]                          #删除远程tag
 
5、推送某个标签到远程
$ git push origin [tagname]                                    # 提交指定tag
$ git push origin --tags                                            # 提交所有tag
 
 
# 新建一个分支,指向某个tag
$ git checkout -b [local-branch] [tag]
  
七、查看信息
1、查看变更的文件
$ git status                                                            #显示有变更的文件
 
2、查看版本历史
 
$ git log                                                              #显示当前分支的版本历史
$ git log --graph                                                 #显示当前分支的版本历史图 
$ git log --stat                                                    #显示commit历史,以及每次commit发生变更的文件
$ git log - 5 --pretty --oneline                            #显示过去5次提交
$git log --pretty=oneline --abbrev-commit
 
3、显示指定文件是什么人在什么时间修改过
$ git blame [file]                                                  # 显示指定文件是什么人在什么时间修改过
 
4、显示代码差异
$ git diff [file]                                                    # 显示暂存区和工作区的代码差异
$ git diff --cached [file]                                    # 显示暂存区和上一个commit的差异
$ git diff HEAD  [file]   或  $ git diff HEAD -- [file]    # 显示工作区与当前分支最新commit之间的差异
$ git diff --shortstat "@{0 day ago}"                # 显示今天你写了多少行代码
$ git show [commit]                                            # 显示某次提交的元数据和内容变化
 
5、显示当前分支的操作记录
$ git reflog                                                            # 显示当前分支的操作记录
 
6、修改提交历史
$ git rebase [branch]                                    # 把分叉的提交历史“整理”成一条直线
 
八、远程同步
1、 下载远程仓库的所有变动
$ git fetch [remote]                                    # 下载远程仓库的所有变动
 
2、查看远程仓库
$ git remote                                                #查看远程服务器名
$ git remote -v                                           # 显示所有远程仓库
$ git remote show                                     # 显示某个远程仓库的信息
 
3、增加远程仓库
$ git remote add [remote] [url]                # 增加一个新的远程仓库,并命名  
 
4、拉取远程仓库代码
$ git pull [remote] [branch]                        #取回远程仓库的变化,并与本地分支合并
 
5、推送分支到远程仓库
$ git push [remote] [branch]                    # 推送本地指定分支到远程仓库
$ git push --set-upstream [remote] [branch]  或 git push -u [remote][branch]           #  推送到远程分支 并绑定分支(远程分支不存在,第一次推送某分支到远程分支并绑定)
$ git push [remote] --force                        # 强行推送当前分支到远程仓库, 即使有冲突
$ git push [remote] --all                            # 推送所有分支到远程仓库
 
 
九、 撤销
1、撤销修改
$ git  checkout  -- [file]    或者  git checkout [file]       一种是将文件自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;一种是将文件已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。总之,就是让这个文件回到最近一次git commit或git add时的状态。
 
2、版本回退
 
$ git reset --hard  HEAD/HEAD^/HEAD~100         # 版本回退(回退到当前版本/回退到上一个版本/回退到前100个版本) 
$ git reset --hard [commit]   回退到某个版本           #版本回退(回退到某个版本commitID)
$ git reset HEAD [file] # 文件已经提交到暂存区,把git add 操作回退到未提交到暂存区,变成工作区有修改
$ git reset [commit]                                                # 重置当前分支的指针为指定commit, 同时重置暂存区,但工作区不变
$ git reset --keep [commit]                                    # 重置当前HEAD 为指定commit,但保持暂存区和工作区不变
 
3、移除代码
$ git stash                                                              #移除还未提交的变化代码
$ git stash list                                                        #查看移除的代码
$ git stash pop                                                      #再次移入
 
4、忽略文件
git update-index --assume-unchanged  [–path]                   #忽略文件不进行提交
git update-index --no-assume-unchanged  [–path]             #可以取消忽略文件 
 
 
 
在本地新建某个分支(远程无该分支)
git checkout -b 分支名
git push -u origin  远程分支名 或者 git push --set-upstream origin 分支名
 
在本地新建某个分支(远程有该分支)
1、git checkout  -b 分支名  origin/远程分支名  
或  git branch --track 分支名  origin/远程分支名          创建分支并绑定远程分支
 
2、git checkout -b 分支名                                                                           创建分支
     git branch  --set-upstream-to = remote/远程分支名    分支名              将本地分支与远程分支进行绑定  
 
 
 
 
 
 
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值