Git使用小结(基本命令使用解说)(一)

Git--分布式版本控制系统


基础概念
工作区:电脑里能够看到的目录
版本库:工作区内隐藏目录.git
暂存区:Git的版本库中存放的stage(index)
HEAD:Git自动创建的第一个分支master后,指向master的一个指针



指令:

    git init  --  将当前目录变为git可以管理的库(在本地)
    git add “filename” -– 将(新的或修改过的)文件提交的仓库中(将文件修改从工作区添加到暂存区) -- 往Git版本库里添加文件时的第一步
    git commit –m “message” -– 将文件提交到仓库,-m 后可以加入提交的说明(把暂存区的所有内容提交到当前分支)--往Git版本库里添加文件的第二步
    git status -–查看是否有文件被修改过
    git diff “filename” -–查看文件修改内容
    git log -– 显示最近到最远的提交日志
    git reset –hard HEAD^ -- Git在内部有个指向当前版本的HEAD指针,将当前版本回退到上一个版本
    git reset –hard “commit id” -- 将当前版本回退到对应commit id的版本往Git版本库里添加文件时的第一步
    git commit –m “message” -– 将文件提交到仓库,-m 后可以加入提交的说明(把暂存区的所有内容提交到当前分支)--往Git版本库里添加文件的第二步
    git status -–查看是否有文件被修改过
    git diff “filename” -–查看文件修改内容
    git log -– 显示最近到最远的提交日志
    git reset –hard HEAD^ -- Git在内部有个指向当前版本的HEAD指针,将当前版本回退到上一个版本
    git reset –hard “commit id” -- 将当前版本回退到对应commit id的版本
 git reflog – 查看命令历史,以便确定回到未来的那个版本
   git diff HEAD – "filename" -–查看工作取和版本库里最新版本的区别
   git checkout – "filename" –- 丢弃工作区的修改(还没add),让文件回到最近一次git commit或git add时的状态 ;或用于恢复在工作区误删的,但还存在于版本库中的文件
   git reset HEAD "filename" -- 把暂存区的修改撤销掉(add但还没commit),重新放回工作区
   git rm “filename” – 从版本库中删除文件

       使用小结:

       场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令 git checkout -- file

       场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步。第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操作。

         场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库。

    

    ssh-keygen –t rsa –C [email protected] – 通过Git Bash创建SSH Key
    git remote add origin git@account:nickname/ReposityName.git  -- 关联到GitHub仓库(注:首先要在本机上建立秘钥对,其中将公钥上传到GitHub,之后才能将仓库推送到GitHub上;同时要在GitHub上创建一个Git仓库ReposityName,用于与本地Git仓库进行远程同步)
origin是Git远程库的默认叫法。
    git push –u origin master – 将本地库的所有内容推送到远程库上,初次推送时,-u,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来(以后推送便可以通过命令:git push origin master 或 git push origin dev--推送到其他分支dev )	
    git clone git@url:nickname/reposityname.git -- 将远程git仓库克隆到本地库
    git checkout –b dev ( 等价于 git branch dev 和   git checkout dev)    -- 创建并切换到dev分支
    git merge dev – 用于合并指定分支到当前分支(会使用fast forward模式合并)
    git branch –d dev – 删除分支dev
    git branch –查看当前分支
    git merge –no-ff –m “message” dev  –以—no-ff方式git merge		
    git branch –d <name > --删除一个分支
    git branch –D <name> -- 强行删除一个还没有合并的分支
    git log –graph – 看到分支合并图
    git remote –v –查看远程库的信息
  git stash –将当前工作现场“储藏”起来
  git stash list – 查看stash中的内容
  git stash pop == git stash apply – 恢复“储藏”在stash中的内容	git stash drop – 删除“储藏”在stash中的内容。当有多个stash时,可以通过git stash apply stash@{0}来恢复

    应用场景:在当前分支master之下存在分支dev,该分支尚未完全修改完成。此时需要新建分支dev1,便可以通过git stash来隐藏当前dev分支的工作现场

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

  git tag “name” – 为最新提交的commit打上标签name
  git tag “name” “commit id” – 为对应id的commit打上标签name
  git tag –a “tagname” –m “message” “commit id” – 为对应id 的commit打上标签tagname,同时带有说明message
  git tag – 查看所有标签
  git show “tagname” – 查看tagname标签信息 
  git tag –d “tagname” – 删除标签tagname
  注:标签默认只存储在本地,不会自动推送到远程
  git push origin “tagname” – 将某个标签推送到远程
  git push origin –tags –一次性推送全部尚未推送到远程的本地标签
  git tag –d “tagname”    git push origin :refs/tags/tagname  --删除远程标签



 
参考文章:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

猜你喜欢

转载自blog.csdn.net/Kachuan/article/details/80293656