查看配置
git config --list
git config --list --local
git config --list --global
查看指定语句的说明文档
git help config
设置用户名和密码
git config --global user.name xiaoyu
git config --local user.name xiaoyu
git config --global user.email xiaoyu@foxmail.com
初始化公共仓库
git init --bare server.git
从远程仓库获取代码
拉取所有版本到本地。
git clone d:\test\server.git user1 //从本地远程仓库
git clone d:\test\server.git user2 //从本地远程仓库
git clone https://github.com/xiaoyustudio181/xxx.git //从网络远程仓库
在 git bash 中反斜杠要使用双反斜杠。
初始化本地仓库
不从远程仓库获取代码的情况。
git init
查看仓库状态
git status
git status -s //简洁模式
添加文件到暂存区
git add a.txt
git add a.txt b.txt
git add *.txt
git add .
git add *
可通过编辑器或命令行创建.gitignore
文件,内容写入不想提交的文件名。
从暂存区移除文件
git rm --cached *
git rm --cached a.txt
git reset *
git reset a.txt
- 必须保证工作目录中代码和暂存区中代码一致。
- 删除之后,工作目录中仍然有此文件而暂存区没有,git 将不管理该文件。
将暂存区中的代码提交到本地仓库,并形成一个版本
git commit -m 'add a.txt'
如果备注的内容里有空格,则需使用引号。
查看本地仓库中的历史提交版本
git log
git log --oneline //简洁模式
git log --oneline --graph //拓扑图模式
git log --oneline --reverse //逆向模式
git log --author xiaoyu //用户模式
git log --oneline --before={3.weeks.ago} --after={2010-04-18} --no-merges //时间模式
按 q
退出查看模式。
向远程仓库推送代码
git push
git push origin(远程仓库地址) master(本地分支):master(远程分支)
将暂存区的文件恢复到工作目录
git checkout .
git checkout *
git checkout a.txt
前提是暂存区和工作目录中均有此文件,该文件依然被 git 管理。
回滚到本地仓库中特定版本并覆盖暂存区和工作目录
git reset --soft [commitID] //工作目录和索引都不变
git reset [commitID] //工作目录不变,重置索引,相当于加参数 --mixed
git reset --hard [commitID] //重置工作目录和索引,不保留它之后提交的文件
- commitID 是 git log 中的版本编号,可全部复制粘贴或取前 4 位以上。
- 当回滚老版本时,它之后的版本将被删除。
远程仓库地址信息
git remote -v
git remote show origin //查看当前别名所对应的远程仓库地址
git remote rm origin //删除当前别名所对应的远程仓库地址
git remote add origin d:\\test\\server.git //为远程仓库地址创建别名
git remote add origin https://github.com/xiaoyustudio181/xxx.git
从远程仓库拉取历史
git fetch
从远程仓库拉取代码
git pull
暂存本地内容的变化,并恢复到上一次提交之后的状态。
git stash
- 恢复本地暂存的内容变化。
git stash pop
给版本打上标签,可在 git log 中看到
git tag test //给当前版本打上标签
git tag test [commitID] //给指定版本打上标签
git tag -d test //删除名字是 test 的标签
不可打重复的标签。
分支命令
git branch test //创建分支 test
git branch //查看所有分支。带`*`的是当前分支。
git checkout test //切换到指定分支。切换后目录的内容会随之变化。
git checkout -b test //创建并切换到分支
git branch -d test //删除分支。如果分支正在使用,或没有被合并,则不能删除。
git branch -D test //强制删除分支
git merge test //合并指定分支到当前分支。合并后来源分支仍然存在。