Git常用命令

$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"

因为Git是分布式版本控制系统,所以,每个机器都必须自报家门:你的名字和Email地址。

--global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。

$ git config --global color.ui true
git会在适当的地方显示不同的颜色

$ git init
把当前目录变为Git可管理的仓库。
$ git add <file name>

把文件添加到仓库。一次只能添加一个(相当于放进了缓冲区)

git add -A   // 添加所有改动

git add *     // 添加新建文件和修改,但是不包括删除

git add .    // 添加新建文件和修改,但是不包括删除

git add -u   // 添加修改和删除,但是不包括新建文件


$ git commit -m <this submission's description>

把文件提交到仓库。一次可以提交多个仓库

$ git status
查看Git仓库当前状态
$ git diff <file name>
查看该文件修改历史
$ git log [--pretty=oneline] [--abbrev-commit]
查看日志文件,按照一定的时间顺序,reset掉之后看不到将以现在版本作为最后时间,author,date,可选参数--pretty=oneline,让显示更加简洁,只显示每次commit的id及其说明

git reset HEAD <file> // 撤销提交单独文件

git reset        // unstage all due changes
以上两个是在commit前撤销add

$ git reset --hard HEAD^|HEAD^^|HEAD~n|<commit id>
版本回退。HEAD^是指会退到上一次commit,HEAD是指会退到上上次,n是指回退到上n次,或者也可以直接写commit id
$ git reflog
查看日志文件,你所做的所有commit、reset操作

$ git checkout -- <file>
撤销工作区对该文件作出的修改,<-->代表工作区
$ git rm <file name>
删除操作加入缓冲区

$ ssh-keygen -t rsa -C "youremail@example.com"
在用户目录下创建SSH Key

$ git remote add origin git@github.com:<user name of github>/learngit.git
把已有的本地仓库与github上的learngit仓库关联,该远程库的名字叫做origin
$ git push -u origin master
把本地库上的所有内容推送到远程库,-u由于第一次远程库是空的,加上-u这个参数,Git不但把Master分支的内容推送到远程的Master分之,并且将这两个分支关联起来,在以后的推送或者拉取时就可以简化命令。也就是再有修改需要进行推送的时候,就不用加-u了
$ git clone git@github.com:<user name of github>/gitskills.git
从远程上面的一个库克隆成为本地的一个库。
$ git branch

查看分支

$ git branch <name>
创建分支

$ git checkout <name>
切换分支

$ git checkout -b <name>
创建并切换分支

$ git merge <name>
合并某分支到当前分支

$ git branch -d <name>
删除分支

$ git merge --no-ff -m ["description"]<name>
将分支中的内容合并到当前分支中,但仍保留那个分支。(传说中的分支管理,工作上经常要这么干。)参数--no-ff就是不使用Fast Forward模式

$ git stash
由于git中只有一个工作区,也就是说,各个分支的工作区是共享的,假如现在在dev分支上正在工作,但是master上面有一个bug需要你现在过去修改,你就要把当前工作区内容利用git stash暂存起来。
$ git stash apply [stash id]
将stash中的东西放回工作区,但是stash中该内容仍然保留
$ git stash drop
删除这个stash中的第一项?

$ git stash pop
把第一个stash内容放到工作区,并删除stash里面的该项内容

$ git stash list
看看stash里面都有啥?因为之前可能多次stash
$ git branch -D <name>
当我们需要在程序中加一个新的feature时,最好新建一个分支。当没有进行分支合并之前就要删除分支,必须使用强制删除(-D),此时,没有合并的分支的内容会丢失。

$ git remote -v
查看远程库的详细信息
$ git push origin <branch name>
向远程库推送分支

$ git checkout -b dev origin/dev
创建远程dev分支到本地,因为抓取分支后只有master分支
git branch --set-upstream branch-name origin/branch-name
建立本地分支和远程分支的关联

$ git pull
如果push有问题的话,要先pull进行合并,合并有冲突,就要先去处理冲突,处理完commit之后再push
$ git tag <name> [commit id]
新打一个标签,默认的commit id 是当前的HEAD

$ git tag -a <tagname> -m "blablabla..."
可以指定标签信息

$ git tag
查看所有标签

$ git show <tagname>
查看该标签的详细信息

$ git tag -d <tagname>
删除标签

$ git push origin <tagname>
推送一个本地标签到远程

$ git push origin :refs/tags/<tagname>
删除一个远程标签,当然,首先你要把本地的这个标签先删除掉



有的时候,有些文件我们不需要提交到git上面,但是必须一致放在工作区,但是每次查看status的时候,都会显示Untracked File,这很烦,那么这个时候就需要在工作区根目录下配置一个.gitignore文件,配置文件可以浏览https://github.com/github/gitignore

当你想添加一个文件添加不了时,可能是因为你在.gitignore文件中写了这个文件,如果想强制添加

$ git add -f <filename>
如果觉得是.gitignore写得有问题,
$ git check-ignore -v <Filename>
可以用这个来检查
$ git config --global alias.st status
给命令配置简写别名,比如上面这个例子,给status配置了一个别名st,以后再用status的时候就可以用st替换了比如 $ git st 

--global的作用是指对当前用户起作用,如果不加,只对当前仓库起作用。

那么配置文件在哪里呢?仓库配置文件在 .git/config如果,用户的配置文件在用户主目录下的 .gitconfig,如果配置名改错了,直接去这个文件下去进行修改。






















  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值