Git 常用命令

git add

git commit -m ""

git commit --allow-empty-message -m "" git 提交不加备注

# 工作区 >>>> 暂存区 >>>> 仓库

# git add把文件从工作区>>>>暂存区,git commit把文件从暂存区>>>>仓库

git diff

git diff 查看工作区和暂存区差异

git diff --cached 查看暂存区和仓库差异

git diff HEAD 查看工作区和仓库的差异

git diff HEAD -- readme.txt

# 暂存区为空 
# 使用git diff:比较的是工作区和仓库,即和使用git diff HEAD结果相同

# 暂存区不为空
# 使用git diff: 比较的是工作区和暂存区

git status

git reset

git reset --hard HEAD^

git reset --hard 740be87

git reset HEAD <file>

# git add的反向命令git checkout,撤销工作区修改,即把暂存区最新版本转移到工作区,
# git commit的反向命令git reset HEAD,就是把仓库最新版本转移到暂存区。

git reflog

每一次命令的历史记录,防止找不到最后一次的提交版本

git checkout

git checkout -- file
命令中的--很重要,没有--,就变成了“切换到另一个分支”的命令,我们在后面的分支管理中会再次遇到git checkout命令。

# git checkout 在工作区的修改全部撤销分两种情况:

# 1、a.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
# 2、a.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。

# 总之,就是让文件回到最近一次git commit或git add时的状态。

git rm

git rm a.txt

# 先手动删除文件,然后使用git rm <file>和git add<file>效果是一样的。
# 另一种情况是删错了,因为版本库里还有呢,所以可以很轻松地把误删的文件恢复到最新版本:
# git checkout -- a.txt

git remote

git remote add origin git://url 添加远程库

git remote rm origin 删除远程库

git remote 查看远程库的信息

git remote -v 查看远程库更详细的信息

git push origin master # origin 通过git remote 获取到的

git checkout -b dev origin/dev

git branch --set-upstream-to=origin/dev dev

# 此处的“删除”其实是解除了本地和远程的绑定关系,并不是物理上删除了远程库。远程库本身并没有任何改动。要真正删除远程库,需要登录到GitHub,在后台页面找到删除按钮再删除。

git push

git push -u origin master

git push origin master

# 由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。

git clone

git clone ssh@url:project.git

git branch

git checkout -b newbranch 创建并切换到新分支

git branch newbranch 创建新分支

git branch 创建分支

git branch -a 查看所有分支

git branch -r 查看远程分支

git branch -d newbranch 删除分支

git branch -D newbranch 强制删除分支

git switch

git switch -c newbranch 创建并切换到新分支

git switch master 切换分支

git merge

git merge dev 把dev分支合并到当前分支

git merge --no-ff -m "" dev 强制禁用Fast forward模式,使得从历史分支中看出合并的分支信息

git config branch.master.mergeoptions       "--no-ff" 仅针对当前分支有效
git config --add merge.ff false             仅针对当前版本库的所有分支有效
git config --global --add merge.ff false    仅针对所有版本库的所有分支有效

以上命令输入后,即可省略 --no-ff   字段

第一个是针对master分支,以此类推
第二个是针对当前版本库的所有分支
第三个是针对所有版本库的所有分支

$ git log --graph --pretty=oneline --abbrev-commit
*   d6560c7 (HEAD -> master) Merge branch 'local'
|\
| * 51afc00 (local) 5 update
| * c39a6bc 4 update
|/
* d614627 update 3
* e976919 (dev) 2 update
* 7fea4b0 1 update
* 2581c67 init

git log

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

git log --graph --pretty=oneline --abbrev-commit

git log --pretty=oneline

git stash

git stash

git stash list

git stash apply git stash drop

git stash pop

git stash apply stash@{0}

git cherry-pick

git cherry-pick 4c805e2 复制一个特定的提交到当前分支

git rebase

git rebase 本地未push的分叉提交历史整理成直线

git tag

git tag 查看所有tag,标签不是按时间顺序列出,而是按字母排序的

git tag v1.0 打标签,默认标签是打在最新提交的commit上

git tag v0.9 f52c633 给历史提交的commit打标签

git show v0.9 查看标签信息

git tag -a v0.1 -m "version 0.1 released" 1094adb 给标签添加说明文字

git tag -d v0.1 删除标签

git push origin v1.0 推送标签到远程

git push origin --tags 推送所有标签到远程

git tag -d v0.9 && git push origin :refs/tags/v0.9 删除远程分支

git ls-remote --tags origin 查看远程所有标签

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇