美文网首页
git_sheetcheat

git_sheetcheat

作者: tf_dejs | 来源:发表于2017-08-05 22:19 被阅读0次

    git是一款开源的版本控制系统(version control system)

    原理

    files@【工作区】-->git add files-->files@【暂存区】@【版本库】-->git commit-->files@【HEAD】@【版本库】
    

    linux安装

    # apt-get install git
    

    配置工具

    为所有本地仓库设置用户信息

    # git config --global user.name "[name]"
    为提交任务设置相关用户名称
    # git config --global user.email "[email_address]"
    为提交任务设置相关用户邮箱
    # git config --global color.ui auto
    使命令行输出时显示颜色
    

    创建仓库

    创建一个新仓库,或从已有URL克隆一个仓库

    # git init [project_name]
    创建一个本地仓库【project_name】
    # git clone [url]
    下载一个项目和他的版本历史
    

    修改编辑

    查看仓库文件和提交

    # git status
    列出所有新文件和未被提交的标记文件
    # git diff 
    显示未归档文件做了哪些修改
    # git add [file]
    归档文件
    # git diff --staged
    显示归档的文件和上次提交时快照的差异
    # git reset [file]
    取消归档,但保护文件内容
    # git commit -m "[descriptive_message]"
    提交文件【将记录的文建快照永久保存到版本记录中】
    

    撤销提交

    擦除提交

    # git reset [commit]
    撤销[commit]之后的所有提交,本地文件不变
    # git reset --hard [commit]
    撤销所有历史记录,改变到特定的[commit]
    # git reset HEAD [file]
    把暂存区的修改都撤销掉
    

    编辑分支

    查看、创建、合并、检出和删除分支

    # git branch
    显示当前仓库所有分支
    # git branch [branch_name]
    创建分支
    # git checkout [branch_name]
    检出某分支,并转换到该分支并更新工作目录
    # git checkout -- file
    丢弃工作区的修改,假如删除了工作区的文件,但版本库中有
    # git merge [branch_name]
    合并特定的分支到当前分支
    # git branch -d [branch_name]
    删除某特定分支
    

    删除文件

    版本控制系统之内

    # git rm [file]
    删除文件,并从版本控制系统中删除
    # git rm --cached [file]
    从版本控制系统删除文件,但保存本地文件,相当于未添加该文件
    # git mv [file-original] [file_rename]
    重命名文件,准备提交
    

    查看历史记录

    # git log
    显示当前分支的版本提交历史
    # git log --pretty=oneline
    单行显示每次提交信息
    # git log --follow [files]
    显示当前分支特定文件的版本提交历史
    # git diff [first_branch] [second_branch]
    显示两支分支的不同
    # git show [commit,前6位]
    显示特定提交信息的元数据
    

    显示临时文件,忽略的文件

    # git ls-files --other --ignored --exclude-standard
    显示项目中所有忽略的文件
    

    保存片段

    在不创建分支的情况下,保存现有片段,进行修改,再恢复该片段

    # git stash
    临时存储所有modified改变
    # git stash pop
    恢复最近保存的片段文件
    # git stash list
    列出所有保存的片段
    # git stash drop
    丢弃所有保存的片段
    

    标签

    # git tag [name]
    打一个新标签
    # git tag
    查看所有标签
    # git tag [name] [commit,前6位id]
    针对提交的commit打标签
    # git show [tag_name]
    显示打标签的信息
    # git tag -a [tag_name] -m "tag_message" [commit,前6位id]
    为标签标记说明信息
    # git tag -s [tag_name] -m "tag_message" [commit,前6位id]
    为标签采用PGP签名
    # git tag -d [tag_name]
    删除标签,一般创建的标签都在本地,不会自动推送到远程
    # git push origin [tag_name]
    推送标签到远程
    # git push origin --tags
    推送所有标签到远程,若删除远程标签,需先删除本地标签,在使用下列方法
    # git push origin :refs/tags/[tag_name]
    从远程删除某标签
    

    同步

    注册仓库书签,交换版本历史

    # git fetch [bookmark]
    从仓库书签下载所有历史
    # git merge [bookmark]/[branch]
    将仓库的标签的分支合并到当前分支
    # git push [alias][branch]
    上传所有本地分支提交的内容到github
    # git pull 
    下载标签历史和改变
    

    远程仓库

    github上其他仓库
    可fork其他仓库到自己账号下,再克隆到本地研习

    # ssh-keygen -t rsa "youremail@example.com"
    创建ssh key,确保github确认推送的动作为用户本人,
    用户目录有.ssh目录,id\_rsa和id\_rsa.pub。
    id\_rsa.pub为公钥,在github中Account settings中"SSH keys"粘贴id\_rsa.pub里的公钥
    # git remote add origin git@github.com:username/project/git
    连接远程库
    # git push -u origin master
    将本地库的所有内容推送到远程库上,【-u】参数,将本地master和远程master分支连接在一起,可用作第一次推送,之后无需使用【-u】
    # git clone git@github.com:username/project.git
    克隆远程库到本地,ssh较快,https较慢
    

    创建别名

    # git config --global alias.st status
    --global为全局变量,之后就可以简化

    相关文章

      网友评论

          本文标题: git_sheetcheat

          本文链接:https://www.haomeiwen.com/subject/bdwwlxtx.html