作者:请叫我攻城狮
链接:https://segmentfault.com/a/1190000020912590
下面以从github作为远程仓库为例 gitee 只需替换对应仓库链接,有关Git的相关教学可以参考廖雪峰老师的Git教程,这里不多介绍了。当然以下命令行只是方便你在没有图形化工具的情况下知道如何操作Git,个人觉得很有必要知道,对理解Git原理也会有帮助
git config --global user.name
"Your Name"
邮箱
git
config
--global
user.email "email@example.com"
Git显示颜色
git config --global color.ui true
mkdir project
cd project
git init
git commit
之前需先git add
,commit
只负责提交暂存区
的内容)
git add README.md(文件名)
# git add -f README.md(-f为强制添加,可提交.gitignore中配置的文件)
git commit -m "提交备注"
git status
git
diff
README.md(文件名)
git log
git reset
--hard HEAD~N
git log
或者git reflog
(记录每次一提交的信息)可以查看)
git reset --hard e475afc93c209a690c39c13a46716e8fa000c366(版本号,这只是个例子,此值不必写全,只要能让git知道是哪个把那本就行,一般写5-6位即可)
git add
或git commit
之前的状态)
git checkout -- README.md(文件名)
git commit
之前)
git reset
HEAD README.md(文件名)
git commit
,若误删可以使用git checkout -- 文件名
)
git
rm
README.md(文件名)
git remote -v
git remote add origin git@github.com:username/xxxx.git
master
分支)
git push -u origin master
git push
origin 分支名
git clone
https://github.com/username/xxxx.git
或
git clone
git@github.com:username/xxxx.git
git clone
-b 分支名 https://github.com/username/xxxx.git
git
branch 分支名
git checkout 分支名
新版本
git switch 分支名
git checkout -b 分支名
新版本
git switch -c 分支名
git branch
*
号)
git
branch -a
git merge
默认为fast forward
模式
fast forward
模式
git merge 其他分支名
禁用Fast forward
模式(--no-ff
) 推荐
git merge --no-ff -m "提交备注" 其他分支名
用git log --graph --pretty=oneline --abbrev-commit
命令可以看到分支合并图git
branch -d 分支名
强行删除分支
git
branch -D 分支名
git stash
git stash list
git stash apply
若存在多个保存的工作空间(n为序号0开始)
git stash apply stash@{n}
git stash drop
若存在多个保存的工作空间(n为序号0开始)
git
stash
drop
stash@{n}
git stash pop
若存在多个保存的工作空间(n为序号0开始)
git stash pop stash@{n}
git cherry-pick commit的编号
git pull
git branch --set-upstream-to 分支名 origin/分支名
git rebase
rebase的目的是使得我们在查看历史提交的变化时更容易,因为分叉的提交需要三方对比。git tag
v1.0 commit的id(不加则为之后的commit添加标签)
git tag
-a v1.0 -m "提交备注" commit的id(不加则为之后的commit添加标签)
git tag
git show v1.0
git tag
-d v0.1
git push origin :refs/tags/v1.0
git
push origin v1.0
git push
origin --tags
git remote add github git@github.com:username/xxxx.git
关联Gitee的远程库
git remote add gitee git@gitee.com:username/xxxx.git
推送Github
git
push github master
推送Gitee
git
push gitee master
.gitignore
文件中哪条规则写错了
git check-ignore -v 文件名
git status
=> git st
git config --global
alias.st status
git reset HEAD file
=> git unstage
git config --global
alias.unstage 'reset HEAD'
git log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit
=> git lg
git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
暂时只能整理这么多啦
更多Java技术文章,尽在【好好学java】网站。 网址:www.java1000.com 搜索 好好学java 或 阅读原文 可达!