填写地址
工作区:编辑的文件 暂存区 add之后
$ git config --global user.name "Your Name" $ git config --global user.email "email@example.com"
注意git config
命令的--global
参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。
git init
创建版本库
git add 文件夹/
将文件夹添加到仓库
git add
将文件添加到仓库
git add .
将目录下所有文件添加到仓库
git commit -m "wrote a readme file" 将文件提交到仓库
- 使用命令
git add <file>
,注意,可反复多次使用,添加多个文件; - 使用命令
git commit -m <message>
,完成。
git status
查看仓库当前状态
git diff
查看不同
git log
查看版本库状态
git log --pretty=oneline
查看版本库状态 (简洁)
cat readme.txt
查看文件内容
git reset --hard HEAD^
回到上一个版本
git reset --hard commit_id 指定回到某个版本
git reflog
查看命令历史
Untracked 未被添加过 新文件
git diff HEAD -- readme.txt
查看工作区和版本里最新版本的区别
git checkout -- readme.txt
放弃工作区的修改 回退上一步
git reset HEAD readme.txt
撤销暂存区的修改 回到工作区
rm
test.txt 本地删除文件 删除之后版本库中还是存在的 (工作区删除)
git rm test.txt
提交到暂存区(通过撤销暂存区的修改可恢复) 暂存区里通过commit提交到版本库 从版本库中删除 删除后就彻底删除了 (可通过版本回退恢复)
git checkout -- test.txt
从版本库中恢复最新版本(撤销工作区的修改)
远程仓库
$ ssh-keygen -t rsa -C "youremail@example.com"
创建ssh key
在github上create new repository之后 就可以添加远程仓库
git remote add origin git@github.com:1988-jm/1988-jm.github.io.git 添加远程仓库
git remote
查看远程仓库的信息
git remote -v
显示更详细的信息
git remote rm origin
删除远程库
git push -u origin master
把本地库的内容推送到远程
由于远程库是空的,我们第一次推送master
分支时,加上了-u
参数,Git不但会把本地的master
分支内容推送的远程新的master
分支,
还会把本地的master
分支和远程的master
分支关联起来,在以后的推送或者拉取时就可以简化命令。
git push origin master(dev) 从本地推送分支
git branch --set-upstream-to=origin/dev dev
如果推送失败 说明远程分支更新,用git pull试图合并 如果git pull
提示no tracking information
,则说明本地分支和远程分支的链接关系没有创建,
用命令
提示 refusing to merge unrelated histories 拒绝合并不相关历史 可以使用 git pull --allow-unrelated-histories 将远程仓库合并到本地仓库
git clone git@github.com:1988-jm/gitskills.git 从远程仓库克隆到本地
分支
查看分支:git branch
创建分支:git branch <name> 分支创建完成更改完成后 需要add 并且commit
切换分支:git checkout <name>
创建+切换分支:git checkout -b <name>
合并某分支到当前分支:git merge <name>
删除分支:git branch -d <name>
git checkout -b dev origin/dev
创建远程分支到本地
git log --graph 查看分支合并图
git log --graph --pretty=oneline --abbrev-commit 查看分支合并图
git merge --no-ff -m "merge with no-ff" dev
合并分支 不使用Fast forward 可看到历史分支 (git默认合并是 Fast forward模式 删除分支后会丢掉分支信息)
)
工作现场
git stash
存储当前工作现场
git stash list
查看保存的工作现场
git stash pop
恢复工作现场 并删除stash
git stash apply
恢复工作现场 stash不删除
git stash apply stash@{0}
恢复指定工作现场 stash不删除 (多个的情况下)
git stash drop 删除stash
git branch -D feature-vulcan 大写的D 强行删除没有被合并的分支
rebase操作可以把本地未push的分叉提交历史整理成直线;
rebase
rebase的目的是使得我们在查看历史提交的变化时更容易,因为分叉的提交需要三方对比。
标签
git tag v1.0
新建标签
git tag
查看所有标签
git tag v0.9 commit_id
为指定commit打标签
git show v0.9
查看标签信息
还可以创建带有说明的标签,用-a
指定标签名,-m
指定说明文字:
$ 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 push origin :refs/tags/v0.9 从远程删除
.gitignore
在Git工作区的根目录下创建一个特殊的.gitignore
文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件。
git check-ignore 检查文件问题
git config --global alias.st status 设置简写别名