$ git init
git add readme.txt git commit -m "wrote a readme file"
$ git status
$ git diff
$ git log
或
$ git log --pretty=oneline
$ git reset --hard HEAD^
回退至前一个版本
$ git reset --hard HEAD^^
回退至之前第一百个版本
$ git reset --hard HEAD~100
$ git reset --hard 1094a(版本号)
$ git reflog
$ git checkout --readme.txt
(这里的--如果去掉,则语句为切换到另一个分支)
$ git reset HEAD readme.txt
从版本库中删除文件,并提交
$ git rm test.txt
$ git commit -m "remove test.txt"
或者
把版本库还存在的文件还原回去
$ git checkout --readme.txt
注意:从来没有被添加到版本库就被删除的文件,是无法恢复的!
$ ssh-keygen -t rsa -C "youremail@example.com"
$ git remote add origin git@github.com:Ted-Wnag/learngit.git
$ git push -u origin master
Ted-Wnag为GitHub账户名。
learngit为远程仓库名称,本地名称可与远程仓库名称不一样。
master为分支名称。
$ git clone git@github.com:Ted-Wnag/learngit.git
注意当前目录是否为自己想放置远程库的目录
$ git checkout -b dev
或
$ git branch dev
$ git checkout dev
$ git branch
$ git checkout master
$ git merge dev
此处注意有两种合并模式,Fast-forward模式和和普通模式(--no-ff)
也可指定--no-ff强制为普通模式
$ git merge --no-ff -m "merged bug fix 101" issue-101
$ git branch -d dev
$ git log --graph --pretty=oneline --abbrev-commit
(git log --graph即可查看分支合并图)
master应该是特别稳定,仅用来发布新版本,而dev用来干活
$ git stash
$ git stash list
$ git stash apply
只是恢复,如果需要删除stash内容,还需要执行
$ git stash drop
恢复同时并把stash内容删除
$ git stash pop
在此之前应该先用
$ git stash list
查看工作现场
再
$ git stash apply stash@{0}
$ git branch -D feature-vulcan
$ git remote
更详细的
$ git remote -v
$ git push origin master
或
$ git push origin dev
git pull
后发现还是失败,原因是没有指定本地dev
分支与远程origin/dev
分支的链接,根据提示,设置dev
和origin/dev
的链接
$ git branch --set-upstream-to=origin/dev dev
再git pull
,pull后成功。但是合并有冲突,需要手动解决,解决的方法和分支管理中的解决冲突完全一样。解决后,提交,再push。
因此,多人协作的工作模式通常是这样:
首先,可以试图用git push origin 推送自己的修改;
如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
如果合并有冲突,则解决冲突,并在本地提交;
没有冲突或者解决掉冲突后,再用git push origin 推送就能成功!
如果git pull提示no tracking information,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream-to origin/。
$ git rebase
rebase操作可以把本地未push的分叉提交历史整理成直线
rebase的目的是使得我们在查看历史提交的变化时更容易,因为分叉的提交需要三方对比
先切换到想切换的分支后再创建
$ git tag v1.0
$ git tag
标签是按字母排序
注意:标签总是和某个commit挂钩。如果这个commit既出现在master分支,又出现在dev分支,那么在这两个分支上都可以看到这个标签。
在此之前先
$ git log --pretty=oneline --abbrev-commit
再
$ git tag v1.0 f52c633
$ git tag -a v1.0 -m "version 1.0 released" 1094adb
$ git show v1.0
$ git tag -d v1.0
$ git push origin v1.0
$ git push origin --tags
需要先删除本地的
$ git tag -d v1.0
再
$ git push origin :refs/tags/v1.0
先删除已关联的名为origin的远程库
$ git remote rm origin
关联GitHub的远程库
git remote add github git@github.com:Ted-Wnag/learngit.git
再关联码云的远程库
git remote add gitee git@gitee.com:Ted-Wnag/learngit.git
此时可用git remote -v查看远程库信息,可以看到两个远程库
git remote -v
$ git config --global color.ui true
.gitignore文件(不需要文件名,不要Win资源管理器新建,而是用文本编辑器)
# Windows:
Thumbs.db
ehthumbs.db
Desktop.ini
# Python:
*.py[cod]
*.so
*.egg
*.egg-info
dist
build
# My configurations:
db.ini
deploy_key_rsa
另外,有些时候,你想添加一个文件到Git,但发现添加不了,原因是这个文件被.gitignore忽略了
比如:$ git add App.class
如果你确实想添加该文件,可以用-f强制添加到Git:
$ git add -f App.class
若.gitignore可能写得有问题,需要找出来到底哪个规则写错了,可以用git check-ignore命令检查
$ git check-ignore -v App.class
$ git config --global alias.st status
敲入git st
试试
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"
配置Git的时候,加上--global是针对当前用户起作用的,如果不加,那只针对当前的仓库起作用
每个仓库的Git配置文件都放在.git/config文件中
而当前用户的Git配置文件放在用户主目录下的一个隐藏文件.gitconfig中:
配置别名错了可以在配置文件改。
根据廖雪峰老师的Git教程所写,其教程地址如下
版权所有:可定博客 © WNAG.COM.CN
本文标题:《Git常用命令》
本文链接:https://cloud.tencent.com/developer/article/1616862
特别声明:除特别标注,本站文章均为原创,本站文章原则上禁止转载,如确实要转载,请电联:wangyeuuu@qq.com,尊重他人劳动成果,谢过~