git使用总结

git 四个模块:
在这里插入图片描述

remote 远程仓库 origin

Repository 本地仓库

Index 暂存区

Workspace 工作区

我们在每个分支上所做的修改都是独立的,不会影响到其他分支。切换分支的时候,会使用分支上最新的提交来还原暂存区和工作区。

git常用操作:

增加删除文件(均为保存在暂存区):

git add [file1] [file2] … # 添加指定文件到暂存区

git add [dir] # 添加指定目录到暂存区,包括子目录

git add . # 添加当前目录的所有文件到暂存区

git add -p # 添加每个变化前,都会要求确认,对于同一个文件的多处变化,可以实现分次提交

git rm [file1] [file2] … # 删除工作区文件,并且将这次删除放入暂存区

git clean -d -f 删除本地清除工作区的文件

代码提交

git commit -m [message] # 提交暂存区到本地仓库区

git commit [file1] [file2] … -m [message] # 提交暂存区的指定文件到仓库区

git commit -a #提交工作区自上次commit之后的变化,直接到仓库区

git commit -v # 提交时显示所有diff信息

git commit --amend -m [message] #使用一次新的commit,替代上一次提交

分支

git branch # 列出所有本地分支

git branch -r # 列出所有远程分支

git branch -a # 列出所有远程和本地的分支

git branch [branch-name] # 新建一个分支,但依然停留在当前分支

git checkout -b [branch] # 新建一个分支,切换到在该分支

git branch --set-upstream [branch] [remote-branch] # 建立追踪关系,在现有分支与指定的远程分支之间

合并分支!!!

git merge [branch] #合并当前分支和制定分支

查看信息

git st # 显示有变更的文件

git diff # 显示暂存区和工作区的差异

git diff HEAD # 显示工作区与当前分支最新commit之间的差异

git reflog # 显示当前分支的最近几次提交

同步

git fetch [remote] # 下载远程仓库的所有变动

git remote -v # 显示所有远程仓库

git push [remote] [branch] # 上传本地指定分支到远程仓库

git pull [remote] [branch] # 取回远程仓库的变化,并与本地分支合并

git push --set-upstream origin develop #关联本地develop分支的upstream分支

git push -u origin develop #这个操作在push的同时会指定当前分支的upstream

撤销

git checkout . # 恢复暂存区的所有文件到工作区

git checkout [commit] [file] # 恢复某个commit的指定文件到暂存区和工作区

git checkout [file] # 恢复暂存区的指定文件到工作区

git revert [commit] #新建一个commit,用来撤销指定commit ,后者的所有变化都将被前者抵消,并且应用到当前分支

git revert 也是撤销命令,区别在于reset是指向原地或者向前移动指针,git revert是创建一个commit来覆盖当前的commit,指针向后移动

  git revert      撤销一个已经push的commit

  git reset    用来撤销一个没有push的commit

git reset 和git revert

git 发布div 步骤:

开发分支上:git add .git commit -m ""git pushgit merge origin/master git push

git co master git pull

git co dev git pull git merge origin/mastergit add . ait commitgit merge 开发分支

可删除本地dev分支,每次需要的时候从远程拉:git br -D dev git co origin/dev -b dev

git 分支命名规范

如:20170910-bugfix-ARM-1148前面是日期,后面是jira号,中间是自己的功能名称

合并分支注意:

合并分支是最容易产生问题的。操作之前注意两点:

1、检查一下当前所在分支及当前分支状态。

2、dev、release、qa、test等测试环境的分支一定不要往自己的开发分支或者master分支合并。

理解并记住这两点能避免很多不必要的问题

生成密钥的方法:

  1. 检查SSH keys是否存在

ls -al ~/.ssh

2.生成新的ssh key

ssh-keygen -t rsa -C "your_email@example.com"

Generating public/private rsa key pair.

Enter file in which to save the key (/your_home_path/.ssh/id_rsa): #回车即可生成~/.ssh目录

3.输入passphrase(本步骤可以跳过)#即直接回车

Enter passphrase (empty for no passphrase): [Type a passphrase]

Enter same passphrase again: [Type passphrase again]

此时会生成文件

4.把sshkey添加到git agent上

eval “$(ssh-agent -s)”

返回:Agent pid 59566

ssh-add ~/.ssh/id_rsa

5.将ssh key添加到GitHub中

pbcopy < ~/.ssh/id_rsa.pub

切换分支的时候最好保持一个清洁的工作区域

a. add并且commit,再checkout,提交到当前分支

b. add但不commit,可以stash,然后checkout回来之后stash apply重新获取刚才的变更,在commit,提交到当前分支 推荐

原因:

一个本地的git repo只有一个工作区和暂存区,但是有多个分支的提交区,而我们的checkout只是将HEAD指针从一个分支切换到另一个分支。
在这里插入图片描述

git add 之后没有commit 之前有三种状态Untracked files,Changes not staged for commit,Changes to be committed可以随意转换

http://phplaber.iteye.com/blog/1699926

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值