程序员

常用Git命令

2017-11-28  本文已影响0人  vincentgemini
git init 

在本地新建一个repo,进入一个项目目录,执行git init,会初始化一个repo,并在当前文件夹下创建一个.git文件夹。

git clone

获取一个url对应的远程Git repo, 创建一个local copy。一般的格式是git clone [url]。clone下来的repo会以url最后一个斜线后面的名称命名,创建一个文件夹,如果想要指定特定的名称,可以git clone [url] newname指定。

git status

查询repo的状态。git status -s //-s表示short, -s的输出标记会有两列,第一列是对staging区域而言,第二列是对working目录而言。

git log

显示提交的历史记录。

git add

在提交之前,Git有一个暂存区(staging area),可以放入新添加的文件或者加入新的改动。commit时提交的改动是上一次加入到staging area中的改动,而不是我们disk上的改动。

git diff

此命令比较的是工作目录中当前文件和暂存区域快照之间的差异,也就是修改之后还没有暂存起来的变化内容。

git commit

提交已经被add进来的改动。

git reset

撤销提交和修改。

不带soft和hard参数的git reset,实际上带的是默认参数mixed。

git revert

反转撤销提交.只要把出错的提交(commit)的名字(reference)作为参数传给命令就可以了。

从工作目录中移除没有track的文件,通常的参数是git clean -df,-d表示同时移除目录,-f表示force,因为在git的配置文件中,clean.requireForce=true,如果不加-f,clean将会拒绝执行。

git mv

git rm - - cached orig; mv orig new; git add new

git stash

把当前的改动压入一个栈,git stash将会把当前目录和index中的所有改动(但不包括未track的文件)压入一个栈,然后留给你一个clean的工作状态,即处于上一次最新提交处。

也可以指定别的项目,比如git stash apply stash@{1}。如果你在应用stash中项目的同时想要删除它,可以用git stash pop,

git branch

删除remote的分支:

这个是因为完整的命令形式是:

git checkout

切换到一个分支。

这个命令是将git branch newbranch和git checkout newbranch合在一起的结果,checkout还有另一个作用:替换本地改动:

此命令会使用HEAD中的最新内容替换掉你的工作目录中的文件。已添加到暂存区的改动以及新文件都不会受到影响。

注意:git checkout filename会删除该文件中所有没有暂存和提交的改动,这个操作是不可逆的。

git merge

把一个分支merge进当前的分支。

如果出现冲突,需要手动修改,可以用git mergetool。
解决冲突的时候可以用到git diff,解决完之后用git add添加,即表示冲突已经被resolved。

git tag

会在一个提交上建立永久性的书签 。

注意:push的时候是不包含tag的,如果想包含,可以在push时加上--tags参数。

git remote

因为不需要每次都用完整的url,所以Git为每一个remote repo的url都建立一个别名,然后用git remote来管理这个list。

如果你clone一个project,Git会自动将原来的url添加进来,别名就叫做:origin。

git fetch

可以git fetch [alias]取某一个远程repo,也可以git fetch --all取到全部repo
fetch将会取到所有你本地没有的数据,所有取下来的分支可以被叫做remote branches,它们和本地分支一样(可以看diff,log等,也可以merge到其他分支),但是Git不允许你checkout到它们.

git pull

拉取远端代码。

git push

推送本地修改到远端。

git rebase

--rebase不会产生合并的提交,它会将本地的所有提交临时保存为补丁(patch),放在”.git/rebase”目录中,然后将当前分支更新到最新的分支尖端,最后把保存的补丁应用到分支上。rebase的过程中,也许会出现冲突,Git会停止rebase并让你解决冲突,在解决完冲突之后,用git add去更新这些内容,然后无需执行commit,只需要:


以下是实际使用的补充:

  1. 本地初始化git库:

    git init
    
  2. 检查本地git库状态:

    git status
    
  3. 往本地git库添加文件:

    git add .
    
  4. 提交到本地缓存库:

    git commit -m 'init'
    
  5. 关联远端git库:

    git remote add origin https://github.com/vincentgemini/MxZFramework.git
    
  6. 推送本地git库到远端git库:

    git push origin master

  7. 本地git库添加标签:

    git tag '1.0.1'

  8. 将本地标签推送到远端:

    git push --tags
    
  9. 克隆远端master分支:

    git clone https://github.com/vincentgemini/MxZFramework.git
    
  10. 克隆远端指定分支:

    git clone -b v1.0.1 https://github.com/vincentgemini/MxZFramework.git
    
  11. 查看当前分支:

    git branch
    
  12. 将代码指定到某次提交:

    git checkout (commit id)
    
  13. 查看分支状态

    git branch -vv
    

其他学习资料:

Git命令语法汇总
Git基本配置与用法

上一篇 下一篇

猜你喜欢

热点阅读