git教程

摘自https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

git

创建版本库

  • 1.新建
    mkdir learngit
    cd learngit
    
  • 2.初始化
    git init
    
  • 3.上传文件到仓库
    git add file1.txt file2.txt
    git commit -m "first update"
    

版本修改(回退、撤销...)

  • 1.查看状态
    git status
    
  • 2.查看difference
    git diff
    
  • 3.查看历史记录(时间线)
    git log
    or 
    git log --pretty=oneline
    
  • 4.回退版本
    git reset --hard HEAD^  上一个版本   HEAD~100
    or
    git reset --hard 1094a  版本号无需写全  
    git reflog  记录历史命令
    
  • 5.暂存区和工作区
    git add 将文件提交到暂存区 
    git commit 将暂存区内容提交到当前分支
    git checkout -- file.txt 撤销修改  工作区内容修改后,如之前添加到暂存区,回退到暂存区状态,若无,回退到版本库状态。即回退到最后一次 git commit 或 git add后到状态 
    git reset HEAD file.txt 把暂存区修改撤销 ,回到工作区
    
  • 6.删除文件
    rm file.txt 
    git rm file.txt
    git commit -m "" 在库上删除文件
    

远程仓库

  • 1.ssh
    ssh-keygen -t rsa -C "youremail@example.com" 
    创建ssh key 
    可以在用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥。
    登陆GitHub,打开“Account settings”,“SSH Keys”页面,然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容。
    
  • 2.本地到远程
    git remote add origin www.com/learngit.git 关联
    git push -u origin master 第一次推送
    git push origin master 推送最新修改(master 分支)
    
  • 3.远程到本地
    git clone www.com/gitskills.git
    
  • 4.远程子目录都克隆到本地
    clone all
    git clone projectA.git
    cd projectA
    git submodule init
    git submodule update
    

    分支管理

  • 1.创建分支
    git branch dev 创建分支
    git checkout dev 切换分支
    git checkout -b dev 创建切换分支
    git branch 查看当前分支
    
  • 2.分支合并
    git merge dev 合并指定分支到当前分支
    git branch -d  dev 删除dev分支
    git log --graph 查看分支合并图
    git merge --no-ff -m "merge with no-ff" dev 强制禁用Fast forward模式进行合并
    
  • 3.bug分支
    git stash 暂存现场
    git stash list 查看工作现场 
    git stash apply 恢复工作现场,不删除
    git stash drop 删除工作现场 
    git stash pop 恢复同时删除
    git stash apply stash@{0} 恢复到指定现场
    
  • 4.强行删除未合并分支
    git branch -D feature-vulcan
    

多人协作

首先,可以试图用git push origin <branch-name>推送自己的修改;
如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
如果合并有冲突,则解决冲突,并在本地提交;
没有冲突或者解决掉冲突后,再用git push origin <branch-name>推送就能成功!
如果git pull提示no tracking information,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream-to <branch-name> origin/<branch-name>。
这就是多人协作的工作模式。
原文地址:https://www.cnblogs.com/nowheretrix/p/10414674.html