win10-git安装与基本用法

下载安装

  1. official link https://git-scm.com/download/win
  2. Git-2.26.0-64-bit o3qt
  3. 运行Git-2.26.0-64-bit.exe,默认选择并next到安装完成就好(安装地址自选)。

基本使用

  1. git是什么、有什么作用?
    git是目前很先进很流行的分布式版本管理系统(说白话就是代码修改管理器),能够对项目(代码)的不同版本进行分布式(多人多机协作)的增加、删除、修改、回滚、提交、合并和远程管理(github)等操作。

  2. git的工作机制

    win10-git安装与基本用法_第1张图片

    工作区是在本地的项目目录(文件夹),存放本地项目的相关数据和源代码。git初始化该工作区之后,开始接管该项目,对该项目的增删改情况进行监控。分布式管理的情况下,会存在很多个个人的工作区。
    版本库包括stagemaster版本库是git用来管理多个工作区的仓库系统,所有的工作区共同为版本库服务。在协作完成一个项目的过程中,当个人的项目内容有改动,经过初步确定之后想要提交到版本库中,首先需要添加addstage中,再次确定无误之后,最终提交commitmaster库中。

    git的工作机制可以看作是在一个时间主轴上对各节点的项目版本进行管理,而master就是这个时间主线。其他的工作区可以通过在这个主线上创建新的节点分支来提交自己的改动,发布不同的项目版本。最终大家(管理员)同意之后,可以将过审的分支版本合并入主线master项目版本中,也可以选择各分支版本共存。>>>初学git,浅陋的见解,以后慢慢加深理解<<<

  3. 版本管理(常用指令总结)

    $ cd workspace # 切换到工作区目录
    $ git config user.name "your name" # 新装的git需要提交用户邮箱和用户名, 才能提交成功
    $ git config user.email"your email" # 
    $ git init  # git初始化该工作区,之后进行接管。会在当前工作区生成一个.git文件夹
    Initialized empty Git repository in /Users/workspace/.git/
    $ vim test.py # 新建文件 cat指令是只查看
    $ git add test.py # 将新添文件添加到版本库的stage暂存区
    $ git commit -m "此次修改的注释说明" # 确定将暂存区添加的修改提交到版本库的master中
    $ git log # 查看修改日志 --pretty=oneline
    $ git reflog # 查看所有历史指令日志
    e475afc HEAD@{
           1}: reset: moving to HEAD^
    $ git status # 当工作区的项目发生了修改之后,可以通过该指令查看是哪些文件发生了修改
    $ git diff # 把文件修改前后的不同之处指出来(修改的位置)
    $ git reset --hard commit_id # commit_id通过git log或者git reflog得到,形如”e475afc“
    $ git checkout -- file # 不小心将一个错误修改添加到暂存区了,并不想提交怎么办?该指令将它剔除出来
    $ rm file # 将工作区文件删除
    $ git rm file # 删除版本库里的文件
    
  4. 分支管理

    **分支上的操作与master一致**
    # 查看版本库的分支
    $ git branch
    # 创建分支的几种方式
    $ git branch branch_name 
    $ git branch branch_name master #继接自master
    $ git checkout -b branch_name # 创建并切换到新分支
    $ git switch -c branch_name # 创建并切换到新分支
    # 切换分支
    $ git checkout branch_name 
    $ git switch branch_name 
    # 删除分支
    $ git branch -d branch_name 
    $ git branch -D branch_name # 强制删除
    $ git merge branch_name # 合并分支到当前分支
    
  5. 远程管理

    # 远程克隆版本库
    $ git clone [email protected]:Tegala/gitskill.git
    
    win10-git安装与基本用法_第2张图片

    如何远程管理Github的项目版本库?
    (1)创建github版本库
    https://github.com/new Create a new repository
    https://github.com/Tegala/gitskill

    win10-git安装与基本用法_第3张图片

    (2)创建了GitHub的远程仓库之后,怎么与本地进行关联呢?

    a.可以从这个仓库克隆出新的仓库
    git clone [email protected]:Tegala/gitskill.git
    b.也可以把一个已有的本地仓库与之关联,然后,把本地仓库的内容推送到GitHub仓库
    git remote add origin [email protected]:Tegala/gitskill.git
    (远程库的名字就是origin,这是Git默认的叫法,也可以改成别的,但是origin这个名字一看就知道是远程库)
    然后将本地库的内容推送至远程库
    git push -u origin master # 该指令实际是把分支master的内容推送至远程库origin进行更新
    注意上面操作是针对一个空库。
    要将本地库推送到现有的远程库进行更新,则本地库和远程库需要匹配(为相关的),否则会引起合并冲突。一般先将远程库pull到本地,然后再push至远程库。
    假如pull失败,提示fatal: refusing to merge unrelated histories,即两个不相干的库默认是无法合并的。可通过以下指令忽略不相干可能导致的冲突
    git pull origin master --allow-unrelated-histories
    这样本地库就更新至与远程库origin相一致的状态。另一个方法(不推荐)
    git push -u origin master -f # 强制推送至远程库进行合并更新,但是存在远程库丢失文件的风险?

    # 指令小结
    $ git clone [email protected]:Tegala/gitskill.git
    $ git remote add origin [email protected]:Tegala/gitskill.git
    $ git push # 默认将当前分支推送至远程库origin -f
    $ git push -u # 由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令
    $ git push origin master # 常用推送更新指令 --allow-unrelated-histories
    $ git pull origin master
    $ git remote -v # 查看远程仓库
    $ git remote add [name] [url] # 添加远程仓库
    $ git remote rm [name] # 删除远程仓库
    $ git remote set-url --push[name][newUrl] # 修改远程仓库
    $ git pull [remoteName] [localBranchName] # 拉取远程仓库
    $ git push [remoteName] [localBranchName] # 推送远程仓库
    $ git push origin [name] # 创建远程分支 或者推送
    $ git push origin :[name] # 删除远程分支
    
    1. 创建标签
      每个分支由commit_id唯一代表识别,但是形如e475afc(甚至更长)的commit_id不便于管理。于是需要给每个分支一个标签快照。
    $ git tag <tagname> # 用于新建一个标签,默认为HEAD,也可以指定一个commit_id
    $ git tag -a <tagname> -m "blablabla..." # 可以指定标签信息
    $ git tag # 查看标签信息
    $ git push origin <tagname> # 可以推送一个本地标签
    $ git push origin --tags # 可以推送全部未推送过的本地标签
    $ git tag -d <tagname> # 可以删除一个本地标签
    $ git push origin :refs/tags/<tagname> # 可以删除一个远程标签
    

参考资料

更详细的学习请继续参考廖雪峰老师

你可能感兴趣的:(linux学习)