git 使用心得

2017-05-27  本文已影响0人  在路上缓缓前进的蜗牛

1.Git 是目前世界上最先进的分布式版本控制系统

2.与SVN区别是,集中式,版本放在中央库

3.windows安装git

    msysgit是windows版本的git

4.git是分布式版本控制系统,所以需要填写用户名和邮箱名作为日标记

    git config --global user.name ""
    git config --global user.email""
    配置全局的git

5.操作

创建版本库
选好文件夹作为git本地仓库
     git init  创建本地仓库
     git add file.txt   提交到缓存
    git cmmit -m '注释'   提交到当前分支上
      git status 查看当前仓库状态
      git diff file.txt  查看修改的内容
      git log 查看历史修改记录
      git log --pretty=oneline  单行显示
git reset --hard HEAD^  回退到上一个版本
git reset --hard HEAD^ 回退到上上个版本
git reset --hard HEAD~100 到上100个版本    cat file.txt 查看文件内容
git reset ---hard 版本号
如果关掉命令行找不到版本号
git reflog

6.工作区与暂存区的区别

工作区就是电脑上的目录
版本库 .git 其中有stage暂存区,自动创建的分支master,指向master的指针

git checkout  -- file
丢弃工作区的修改
添加到暂存区的内容不被撤销
删除文件
rm file
不想删除
git checkout -- file (恢复)
git commit - m "" 提交删除(彻底删除)

7.远程仓库

SSH加密
创建SSH Key 用户主目录下 .ssh 目录 (id_rsa私匙和id_rsa.pub公匙)

ssh-keygen  -t rsa --C ‘’email"

在github Add SSH Key里粘贴id_rsa.pub 文件的内容

7.1关联远成仓库

1.github上创建一个新的仓库,全部默认,作为空仓库

git remote add origin ....git
git push -u origin master
-u命令,不但会把本地的master分支内容推送到远程新的master,还会把本地的master分支和远程的master分支关联起来,以后推送或拉取时可以简化命令

2.github上创建的仓库含有reademe.md文件的

需要将远程分支上的内容clone下来
git clone remotebranch
7.2创建与合并分支

git每次提交都会把他们串成一条时间线,这条线就是一个分支,Git里叫主分支,master,HEAD指向master,master指向提交,HEAD只想的就是当前分支

git checkout -b ng  创建并切换分支
=git branch ng(创建分支) +git checkout ng(切换分支)  
在ng分支上做完修改在master分支上不可见
git merge ng 
将ng上修改的内容合并到主分支master上
删除分支
git branch -d ng

冲突问题
在不同分支上修改同一个文件会产生冲突
<<<HEAD指主分支  
 =======  
>>>ng 分支

手动解决冲突,master上commit然后删除分支


fast forward 新建一个分支做修改后,切换回主分支master,master未作修
改时进行合并就叫fast forward
当直接merge时 ,删除分之后没有分支信息

git merge --no-ff -m "注释,分之合并信息" 分支      加入分支信息

临时插入的工作,修复bug

分支上的工作没有完成时

临时停下当时分支上的工作,无法提交的时候(貌似用处不大)

git stash  当前分支就是干净的了
原理是将当前工作区的内容保存到栈里

切换到master 建立分支修复bug

修复完后需要切换回分支继续工作
git stash list 显示Git栈内的所有备份,可引用这个列表来决定从哪个地方恢复
git stash apply (恢复到最近一次保存,不删除站内的内容)
git stash apply stash@{0}(恢复到某次保存)
git stash pop 从栈中读取最近一次保存的内容,恢复工作区的相关内容(并删除栈中本次记录)
git stash clear 清空git 栈
git stash drop 删除一条

多人协作

当从远程库克隆时,Git自动把本地的master分支和远程的master分支对应起来,并且远程库的默认名称是origin

git remote 查看远程分支信息(当前提交的分支)
git remote -v 查看远程仓库详细信息
git push origin dev:dev  (本地分支,远程分支)
如果当前在dev分支下可以直接 
git push
删除远程分支
git push origin :dev
上一篇下一篇

猜你喜欢

热点阅读