Git常用命令总结

参考文章:Git常用命令总结

git init

git init 将目录初始化为一个Git仓库

git clone

git clone [url] [newname] 从远程仓库克隆项目到本地,使其成为一个本地的仓库并拥有远程仓库的所有记录

git status

git status 查看仓库状态
git status -s 简短地查看仓库状态

git log

git log 查看当前分支的提交记录
git log branchname 查看特定分支的提交记录
git log --oneline --number 每条记录只显示一行,显示number条
git log --oneline --graph 图形化的表示出分支合并历史
git log --oneline branch1 ^branch2 查看在分支1,且不在分支2的提交中
git log --decorate 会显示出tag信息
git log --author=[authorname] 查看指定作者的提交历史
git log --since --before --until --after 根据提交时间筛选log
git log --grep=keywords 根据commit信息过滤log

git add

git add filename 将文件追踪到暂存区
git add . 将所有文件追踪

git diff

git diff 查看工作区文件和咱暂存区文件之间的差异
git diff --cached 查看已暂存起来的文件和上次提交时的文件的差异
git diff HEAD 比较工作区和上次提交之间所有的改动
git diff versiontag 查看某个版本之后的所有变化
git diff [branchA] [branchB] 比较两个分支的差异

git commit

git commit 提交已经被add进来的文件
git commit -m “commit message” 命令里直接填写提交信息
git commit -a 将所有文件提交

git reset

git reset HEAD 撤销最近的那一次提交
git reset --soft 撤销上一次提交,但保存工作区的内容
git reset --hard 撤销上一次提交,且丢掉工作区的内容,重置版本

git revert

反转撤销提交.只要把出错的提交(commit)的名字(reference)作为参数传给命令就可以了.
git revert HEAD: 撤销最近的一个提交.
git revert会创建一个反向的新提交,可以通过参数-n来告诉Git先不要提交.

git rm

git rm file: 从staging区移除文件,同时也移除出工作目录.
git rm --cached: 从staging区移除文件,但留在工作目录中.
git rm --cached从功能上等同于git reset HEAD,清除了缓存区,但不动工作目录树.

git clean

git clean是从工作目录中移除没有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 list会显示这个栈的list.
git stash apply:取出stash中的上一个项目(stash@{0}),并且应用于当前的工作目录.
git stash drop 删除上一个,也可指定参数删除指定的一个项目.
git stash clear 删除所有项目.

git branch

git branch 可以用来列出分支,创建分支和删除分支.
git branch -v 可以看见每一个分支的最后一次提交.
git branch 列出本地所有分支,当前分支会被星号标示出.
git branch (branchname) 创建一个新的分支(当你用这种方式创建分支的时候,分支是基于你的上一次提交建立的).
git branch -d (branchname): 删除一个分支.
git branch -m oldName newName 重命名一个分支

git checkout

git checkout (branchname) 切换到一个分支.
git checkout -b (branchname): 创建并切换到新的分支.

git merge

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

git merge [alias]/[branch]
把远程分支merge到当前分支.

如果出现冲突,需要手动修改,可以用git mergetool.

解决冲突的时候可以用到git diff,解决完之后用git add添加,即表示冲突已经被resolved.

git tag

会在一个提交上建立永久性的书签,通常是发布一个release版本或者ship了什么东西之后加tag.

git tag v1.0
git tag -a v1.0, -a参数会允许你添加一些信息,即make an annotated tag

你运行git tag -a命令的时候,Git会打开一个编辑器让你输入tag信息.
我们可以利用commit SHA来给一个过去的提交打tag:

git remote

git remote 列出remote aliases.
git remote -v 可以看见每一个别名对应的实际url.
git remote add [alias] [url] 添加一个新的remote repo.
git remote rm [alias] 删除一个存在的remote alias.
git remote rename [old-alias] [new-alias] 重命名.
git remote set-url [alias] [url] 更新url. 可以加上—push和fetch参数,为同一个别名set不同的存取地址.

git fetch

git fetch [alias]
取某一个远程repo,也可以git fetch --all取到全部repo

fetch将会取到所有你本地没有的数据,所有取下来的分支可以被叫做remote branches,它们和本地分支一样(可以看diff,log等,也可以merge到其他分支),但是Git不允许你checkout到它们.

git pull

git pull <远程仓库> <远程分支名> <本地分支名>
获取远程主机某个分支的更新,再与本地的指定分支合并,git pull == git fetch + git merge

git rebase

git rebase -i id 把id之前的提交合并

git push

git push [alias] [branch]
将会把当前分支到远程仓库的[branch]分支.如果分支已经存在,将会更新,如果不存在,将会添加这个分支。

如果有冲突,git会拒绝推送,需要先进行git pull 命令更新本地分支文件

特殊符号

^代表父提交,当一个提交有多个父提交时,可以通过在后面跟上一个数字,表示第几个父提交。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值