Git常用操作

1. 安装与配置

Linux系统

$ sudo apt-get install git

Windows系统
从官网下载[https://git-for-windows.github.io/][1], 用Git bash操作。

配置提交时相关联的用户名和邮箱

$ git config --global user.name [name]
$ git config --global user.email [email@example.com]

2. 创建版本库

创建一个路径,然后初始化。

$ git init [project-name]

或者下载一个工程版本库的整个历史。

$ git clone [url]

3. 配置远程仓库

在本机第一次使用git时需要创建SSH Key,之后不用重复创建

$ ssh-keygen -t rsa -C "[youremail@example.com]"

找到.ssh目录,里面id_rsa和id_rsa.pub两个文件,分别是私钥和公钥,在github网站上将公钥的内容添加到账户里。在github网站中创建新仓库,并在本地的仓库中添加此远程仓库

$ git remote add origin git@github.com:[name]/[repo-name].git

第一次推送master分支的所有内容,以后推送时就可以不用 -u

$ git push -u origin master

4. 改变状态

  • 添加文件到暂存区(Stage)
$ git add [file]
  • 记录一个永久的快照到版本历史
$ git commit -m "[descriptive message]"

5. 显示信息

  • 显示版本库当前状态,即文件新建或者修改情况
$ git status
  • 显示工作区(Working Directory)文件修改的内容
$ git diff
$ git diff [file]
  • 显示暂存区(Stage)文件修改的内容
$ git diff --staged
  • 显示两个分支(Branch)不同的内容
$ git diff [first-branch]...[second-branch]
  • 显示当前分支的版本改变历史
$ git log
$ git log --graph
$ git log --pretty=oneline
$ git log --abbrev-commit
  • 显示一个文件的版本历史包括重命名
$ git log --follow [file]
  • 显示历史命令
$ git reflog
  • 显示某次提交或标签的信息
$ git show [commit/tag]

6. 版本回退

  • 撤销修改文件,恢复到最近一次暂存区的状态(git commit命令之前)或工作区的状态(git add命令之前),即不保留文件改变的内容。如果文件被删除,则可以从版本库中恢复最近一次提交的文件
$ git checkout -- [file]
  • 撤销添加文件,将刚刚添加进暂存区(Stage)的文件移到工作区(Working Directory),但是保留文件改变的内容
$ git reset [file]
$ git reset HEAD [file]
  • 将当前版本回退到某个历史版本,但是保留本地的改变
$ git reset [commit]
$ git reset HEAD^
$ git reset HEAD^^
$ git reset HEAD~100
  • 丢弃所有的修改及其历史,回到某次特定的提交
$ git reset --hard [commit]
$ git reset --hard HEAD^
$ git reset --hard HEAD^^
$ git reset --hard HEAD~100

7. 删除与重命名

  • 删除工作区中的文件并将本次操作添加到暂存区(Stage),下一次可以直接提交
$ git rm [file]
  • 删除版本库中的文件但是保留工作区中的文件
$ git rm --cached [file]
  • 重命名文件,下一次可以直接提交
$ git mv [file-original] [file-renamed]

8. 临时保存

  • 临时保存工作现场(所有修改的文件)
$ git stash
  • 恢复最近一次保存的工作现场,并删除临时保存中的记录
$ git stash pop
  • 恢复最近一次保存的工作现场,但不删除临时保存中的记录,还可以恢复指定的临时保存
$ git stash apply
$ git stash apply stash@{0}
  • 列出所有临时保存的工作现场
$ git stash list
  • 丢弃最近一次保存的临时现场
$ git stash drop

9. 分支管理

  • 列出当前版本库的所有本地分支
$ git branch
  • 创建新的分支
$ git branch [branch-name]
  • 切换分支并更新工作区
$ git checkout [branch-name]
  • 创建并切换分支
$ git checkout -b [branch-name]
  • 合并分支及其历史到当前分支,会使用Fast forward模式,即在删除分支后会看不出历史分支的信息。
$ git merge [branch]
  • 合并分支到当前分支,强制禁用Fast forward快速合并模式,即合并分支时会生成一个新的提交,从而在分支历史上就可以看出历史分支的信息。
$ git merge --no-ff -m "[descriptive message]" [branch]
  • 删除分支 -d,若还未合并则会删除失败,此时可以强制删除分支 -D
$ git branch -d [branch-name]
$ git branch -D [branch-name]

10. 远程同步

  • 查看远程库的信息
$ git remote
$ git remote -v
  • 推送本地分支到远程
$ git push [remote] [local branch]
  • 拉取远程分支并与本地当前分支合并
$ git pull
  • 拉取远程分支并与本地指定分支合并
$ git pull [remote] [local branch]
  • 获取远程所有分支和历史
$ git fetch [remote]
  • 合并远程的某个分支到当前本地分支
$ git merge [remote]/[branch]

11. 标签

  • 查看与创建标签,默认打在最新提交上
$ git tag
$ git tag [tag name]
$ git tag [tag name] [commit id]
$ git tag -a [tag name] -m "[descriptive message]" [commit id]
  • 查看标签信息
$ git show [tag name]
  • 推送某个标签或者所有标签到远程
$ git push [remote] [tag name]
$ git push [remote] --tags
  • 删除本地标签和远程标签
$ git tag -d [tag name]
$ git push [remote] :refs/tags/[tag name]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值