美文网首页
Git基本使用

Git基本使用

作者: wincharle | 来源:发表于2017-07-06 01:50 被阅读0次

    1、安装和设置用户名和邮箱

    # 配置相关信息
    git config
    git config --global user.name "wincharle"
    git config --global user.email "wincharle@qq.com"
    

    2、git工作图解

    image
    • workspace:工作区
    • index/stage:暂存区
    • repository:仓库区(或者本地仓库)
    • remote:远程仓库

    3、创建版本库

    #当前目录创建一个版本库
    git init
    
    #新建一个目录,并将其初始化为一个git代码库
    git init [project-name]
    
    #下载一个项目和它的整个代码历史
    git clone [url]
    

    4、增加文件到暂存区

    #添加文件到暂存区,可以一次添加多个
    git add file1 file2 ...
    
    #添加文件夹到暂存区
    git add [dir]
    
    #添加当前文件夹下的所有文件到暂存区
    git add
    

    5、代码提交到本地仓库

    #提交暂存区到仓库区
    git commit -m "message"
    
    #提交暂存区指定文件到仓库区
    git commit file1 file2 ... -m "message"
    

    6、文件修改查询

    #工作区状态查看,查看哪些文件被修改
    git status
    
    #查看修改的具体内容
    git diff
    

    7、仓库区版本控制git reset

    git reset主要做两件事:

    • 修改仓库区HEAD指针
    • 根据参数--hard、--soft和--mixed选择是否覆盖缓存区和工作区,默认是mixed
    # 默认情况下是覆盖所有文件,如果想覆盖一个文件,添加文件名
    git reset --hard --mixed --soft [commit]
    
    git reset HEAD [filename]
    
    #HEAD指向当前版本,HEAD^指向上一个版本
    git reset --hard HEAD^
    
    #通过版本号
    git reset --hard commit_id
    
    #通过git log查看提交历史
    git log
    
    #通过git reflog查看历史命令,以确定回到未来哪个版本
    git reflog
    

    8、删除文件

    #从版本库中删除文件
    git rm file
    git commit -m "remove file"
    
    #误删文件,checkout实际是从版本库里的文件代替工作区的版本
    git checkout -- file
    

    9、远程仓库

    1、添加远程库

    # 增加一个姓的远程仓库,并命名
    git remote add [name] [url]
    
    # origin就是https://github.com/wincharle/learngit这个仓库
    git remote add origin https://github.com/wincharle/learngit
    
    # 本地仓库的内容推送到远程仓库,第一次Push添加-u
    git push -u origin master
    git push origin <branch>
    

    NOTE: 如果远程仓库已经有内容,需要pull一下,并合并内容

    git pull origin master --allow-unrelated-histories
    

    2、克隆远程库

    # 克隆仓库
    git clone https://github.com/wincharle/test
    

    10、分支

    # 查看分支
    git branch
    
    # 新建分支
    git branch <branchname>
    
    # 切换分支
    git checkout <branchname>
    
    # 合并分支
    git merge <branchname>
    
    # 删除分支
    git branch -d <branchname>
    

    1、checkout(检出)

    • 检出分支,HEAD指向branch,更新缓存区和工作区
    git checkout branch
    
    • 从commit里检出文件,重置缓存区和工作区
    # 显示的提供commit,重置缓存区和工作区
    git checkcout commit -- filename
    
    # 不提供commit,默认是缓存区
    git checkout -- filename
    

    2、分支合并

    # 直接merge,但是有缺点
    git merge branch
    
    # 直接merge通过git log查看不到分支信息
    git log --graph
    
    # 提供参数--no-ff,会有一次commit
    git merge --no-ff -m "merge message"
    

    3、分支管理策略
    A和B同时工作,有两个分支master和dev。

    第1步:2人同时把远程仓库克隆到本地

    git clone https://github.com/wincharle/learngit
    

    NOTE:克隆节点的话,只会克隆master节点。

    第2步:A和B需要在dev节点上开发,就必须将远程分支下载到本地,可以通过checkout或者fetch

    # checkout远程分支
    git checkout -b dev origin/dev
    
    # fetch
    git fetch origin 远程分支名:本地分支名
    

    第3步:A完成开发后push到远程仓库

    git add ...
    git commit ...
    git push origin dev
    

    第4步:B完成开发后也push到远程仓库,但是发生错误。原因是A和B提交的版本有冲突,需要先pull一下,然后本地合并后,解决冲突,再推送。

    git pull origin dev
    

    11、标签管理(标签和commit就类似于域名和IP地址)

    # 给一个commit创建一个标签,默认commit是HEAD
    git tag <name>
    git tag <name> <commit>
    
    # 给标签指定标签信息
    git tag -a <name> -m "blabla...."
    
    # 查看所有标签
    git tag
    
    # 查看一个标签的信息
    git show <tagname>
    
    # 推送本地标签
    git push origin <tagname>
    
    # 推送本地所有标签
    git push origin --tags
    
    # 删除本地标签
    git tag -d <tagname>
    
    # 删除远程标签
    git push origin :refs/tags/<tagname>
    

    相关文章

      网友评论

          本文标题:Git基本使用

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