Git基本指令
$ git init /创建版本库
$ git add <file> //文件修改添加到暂存区
$ git commit -m “commit description” // 把暂存区的所有内容提交到当前分支。
Git版本管理
$ git status //查看仓库当前状态
$ git diff filename.suffix //查看文件被修改内容
$ git log // 查看版本更改历史记录
$ git reflog // 查看命令历史记录
$ git reset --hard HEAD^ // 回退到上一个版本
$ git reset --hard HEAD^^ // 回退到上上一个版本
$ git reset --hard 3628164 //3628164 is commit id
$ git update-index --skip-worktree [file] //当本地改动无须同步到远程服务器时
$ git update-index --assume-unchanged [file] // 假定开发人员不会更改文件,此标记旨在为无变化文件夹(如 SDK)改善性能。
- HEAD指向的版本就是当前分支的当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset –hard commit_id。
- 穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。
- 要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。
Git仓库修改
$ git checkout -- readme.md //撤销文件在工作区的修改
$ git reset HEAD readme.md //撤销文件在暂存区的修改
$ git reset --hard HEAD^ //撤销文件在版本库的修改
$ git rm readme.md //删除版本库中的文件
$ git commit -m "remove readme.md"
- 就是你在电脑里能看到的目录
- 工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。
-
Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。
Git分支管理
$ git branch dev // 创建分支dev
$ git branch dir/branch // 创建带目录的分支
$ git checkout dev // 切换分支到dev
$ git checkout -b dev // 创建并切换到dev
$ git branch // 查看当前分支
$ git branch -a // 查看远程分支
$ git merge dev // 合并指定分支到当前分支
$ git status // 如分支冲突时,可以查询冲突文件
$ git log --graph --pretty=online --abbrev-commit//查看分支合并情况
$ git branch -d dev // 删除分支dev
$ git push origin --delete <branchName> //删除远程分支
$ git push origin :<branchName> //删除远程分支
$ git push origin --delete tag <tagname> //删除远程tag
$ git tag -d <tagname>
$ git push origin :refs/tags/<tagname> //删除远程tag
Git远程仓库
$ ssh-keygen -t rsa -C "youremail@example.com" // 创建SSH Key
$ git remote add origin git@github.com:jerkwisdom/learngit.git //关联远程仓库
$ git remote rm origin //清空远程仓库
$ git push -u origin master // 第一次推送内容到远程仓库
$ git push origin master // 后续推送内容到远程仓库
$ git clone git@github.com:JerkWisdom/Test.git // 从远程库克隆
Git相关名词
- HEAD指向当前分支的当前版本,HEAD^指向当前分支的上一个版本,以此类推。
- master为仓库的主分支
- origin为远程仓库
Git换行符自动转换
1、在.gitignore相同目录下增加 .gitattribute 文件
2、在其中输入 * text eol=lf (UNIX) or * text eol=crlf (Windows)
3、提交代码到git上
欢迎访问我的个人博客click me