Git简单总结

Git 总结

使用 Git 感觉就是使用三个箱子,分别是:

  • 工作区
  • 暂存区
  • 版本库

而使用 Git 就是将版本不同的代码在这三个箱子里转换存放

Git 语法

下面举出最常用的Git语句

提交代码

  • git init: 初始化 Git 文件
  • git add <fileName>:提交工作区的版本代码到暂存区,<fileName>-A 代替后表示提交所有修改过后的文件
  • git commit <-m "msg">: 提交暂存区的版本代码到版本库,<"msg"> 是提交信息
  • git commit --amend <-m "msg">: 替代最近一次提交,此时会出现输入界面,可以按 Esc 键后再输入两次 大写 Z 键以退出,此时需要 push 到远程库就可能需要使用 git push origin master -f 强制更新了

撤回代码

《Git使用 - 回退到历史提交版本》

撤回代码有 resetcheckout 两种方法,区别在于 checkout 会产生匿名分支。以及要注意 reset 方法中 --soft--hard 以及默认的 --mixed 模式的区别。

  • git reset HEAD <fileName>:使库的版本代码覆盖暂存区的版本代码,起撤回 add 命令的作用
  • git checkout -- <flieName>:使暂存区的版本代码覆盖工作区的版本代码,起恢复代码的的作用(注意 -- 后有空格),使用 git checkout -- 命令可以查看可操作的文件名
  • git checkout <id>:产生分支,回退版本库代码,id可使用 git log 查找
  • git reset --soft HEAD~<number>:起回溯版本的作用,其中仅回溯版本库的版本,不添加 number,默认回溯一个版本
  • git reset HEAD~<number>:起回溯版本的作用,是git reset -mixed HEAD~<number> 简写,回溯版本库和暂存区的版本代码,不添加 number,默认回溯一个版本
  • git reset --hard HEAD~<number>:起回溯版本的作用,回溯版本库、暂存区以及工作区的版本代码
  • git reset commit-id:指向某个版本

链接远程库

  • git remote add origin git@github.com:Seiei-Leung/learngit.git:先有本地库,后有远程库,然后关联远程库
  • git clone git@github.com:Seiei-Leung/gitskills.git:先有远程库,后有本地库,然后克隆远程库
  • git push -u origin master: 关联远程库,第一次推送 master 分支的所有内容
  • git push origin master:此后,每次本地提交后,推送到远程库
  • git pull origin master:从远程库拉出版本代码

本地电脑首次连接远程数据库,需要添加 sshkey,在添加之后,还需要在命令行里面输入 ssh -T git@github.com只是在询问 (yes/no)的时候,记得输入 yes 后才回车

其它

  • git log <-number> <--pretty=oneline>:查看提交版本日志,number 查看数,输入大写字母 Q 退出
  • git reflog:包括未来版本
  • git status: 三个箱子的版本代码状态

忽略文件

创建 .gitignore 文件起忽略提交某些文件作用,内容例如:

*.py[cod]
*.so
*.egg
*.egg-info
dist
build

.gitignore 只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,再修改 .gitignore 是无效的,此时需要:

git rm -r --cached .
git add .
git commit -m 'update .gitignore'

git init  #初始化所在目录为Git仓库
git add <file> ...  #添加文件到暂存区(stage)
    -f <file> ...  #强制添加到暂存区(可用于添加忽略文件)
git commit -m "提交说明"  #从暂存区提交到版本库
git status  #查看仓库当前状态
git diff [file]  #比较工作区和暂存区的差异
git diff --cached [file]  #比较暂存区和版本库的差异
git diff HEAD -- [file]  #比较工作区和版本库的差异
git log  #查看提交历史
git log -1  #查看最后一次提交信息(-2 则是最后两次)
git log --pretty=oneline  #单行格式显示提交历史
        --graph  #显示分支合并图
        --abbrev-commit  #简写的commit_id
git reflog  #查看所有操作记录,包括删除的commit记录
git reset --hard HEAD^  #回退到上一版本
# HEAD 表当前版本, HEAD^ 表上一版本,HEAD^^ 表上两版本,HEAD~99 表上99版本。
git checkout -- <file>  #撤销工作区的修改
git reset HEAD <file>  #撤销暂存区的修改
rm <file> ...  #工作区删除
git add <file> ...  #将修改提交至暂存区
git commit -m "说明"  #提交到版本库
git rm <file> ...  #删除工作区和暂存区文件
git commit -m "说明"  #提交到版本库
git remote add origin git@github.com:UserName/repo-name.git  #添加远程仓库
git remote rm origin  #取消远程绑定
git remote  #查看远程库信息
           -v  #显示详细信息
git push -u origin <branch>  #推送并关联指定分支到远程库
git clone git@server-name:path/repo-name.git  #将远程仓库克隆到当前目录
git pull  #拉取远程仓库内容
git branch <branch>  #创建分支
git checkout <branch>  #切换到指定分支
git checkout -b <branch>  #创建并切换到该分支
git branch  #查看现有分支
git branch -d <branch>  #删除指定分支
git branch --set-upstream <branch_local> <branch_remote>  #指定本地分支与远程分支的链接
git merge <branch>  #合并指定分支到当前分支
      --no-ff <branch>  #禁用快速合并
git merge --no-ff -m "提交说明" <branch>  #普通方式合并,并附提交说明
git stash  #保存当前工作环境(包括工作区和暂存区)
git stash list  #查看保存的工作列表
git stash apply [stash@{X}]  #恢复工作状态,但不删除stash内容
git stash pop [stash@{X}]  #恢复工作状态,并删除stash内容
git stash drop [stash@{X}]  #删除stash内容
git branch -D <branch>  #强制删除分支(常用于未合并的分支)
git tag  #查看现有标签
git tag <tag_name>  #给当前所在的commit打标签
git tag <tag_name> <commit_id>  #给指定commit打标签
git tag -a <tag_name> -m "标签说明" <commit_id>  #给指定commit打标签,并附说明
        -s <tag_name> -m "标签说明" <commit_id>  #用gpg私钥签名
        -d <tag_name>  #删除标签
git show <tag_name>  #显示标签信息
git push origin <tag_name>  #推送标签到远程库
git push origin --tags  #推送所有未推送的标签到远程库
git push origin :refs/tags/<tag_name>  #删除远程标签(先删除本地,再使用该命令删除)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值