Git_常用命令

Git常用命令

1.Git的基础原理

1.Workspace 工作区 可以理解为本地的目录文件
2.Index/Stage 暂存区 在使用add命令之后将会把文件从工作区加入到暂存区
3. Repository 本地仓库,将add后的文件使用commit命令加入到仓库区
4.Remote 远程仓库,将仓库区中的文件使用push 推送到远程仓库

git 图片

2.Git常用命令

1. add – 将新建的文件或者已经修改的文件全部加入到暂存区
  • git add path --添加具体路径下的文件
  • git add ./*.cpp – 可以使用通配符来添加文件,但这样的方式只适合以及存在管理控制的文件,对于新文件是不能这样添加的
2. commit – 将暂存区的文件添加到仓库区
  • git commit file1 file2 file3 … -m “commit files” // -m 是提交时候的备注
  • git commit -a -m “commit files” //-a 会将暂存区中的所有操作都提交包括删除
  • git commit //如果忘记使用-m选项,则会弹出vim的编辑框,编辑保存就可以了
  • git commit --amend //将此次提交 追加到上一次的commit的内容里面去
3. push – 将仓库区的文件推送到远程分支
  • git push 远程主机名 本地分支名:远程分支名 – git push origin master:master
  • git push origin master //如果省略远程分支名,则表示将本地分支推送到与有追踪关系的远程分支,如果远程分支不存在 就会被创建
  • git push origin :master //如果本地分支不存在,相当于删除远程分支,好比推送一个空的分支内容过去
  • git push origin //如果当前分支与远程分支有追踪关系 则可以省略分支名
  • git push //如果当前只存在一个分支,则远程主机名也可以省略

**在git push的过程中,我们应该先git pull 然后更改之后进行提交,这样可以避免产生冲突,如果已经产生冲突了,我们就必须的先git pull下来 然后手动修改冲突文件之后进行add commit的操作 **

4. rebase – 将多个commit的内容合并到一个commti里面

*git rebase -i 4132312hash // 最后一个参数表示不要合并的commit的hash值

git
git rebase
在git rebase 之后会出现如下的界面,出现的界面中未注释的部分为需要进行的操作,注释的部分为操作相关命令的解释,其中pick的意思是执行这个commit 而squash这个命令的是将commit合并到前一个版本中去,为此我们将前两个改成squash 然后保存提交就可以了
git rebase

5.log – 查看提交的日志信息
  • git log //查看所有的提交信息 显示的比较详细
  • git log --oneline //查看提交的日志 每个commit显示为一行
  • git log - 10 //只显示前10条commit的日志信息
  • git log -p //显示一些统计信息以及文件的改动信息和行数
  • git log --stat //显示提交的作者 日期和message等内容
  • git shortlog //显示每个author 提交的commit内容和多少条commit
  • git log --after/–before=“2018-7-1” //查找日期之后/之前的提交内容
  • git log --author=“123” //查找作者的提交的日志
  • git log --grep =“123” //查找提交的日志中是否有123字样
  • git log --123.txt //查看这个文件的提交日志
  • git log -S “132” //对所有文件中包含了对132这样的文本的修改
6. stash – 将当前的修改内容暂存起来,但是会将工作区内容全部还原成暂存区一样 用于在开发过程中需要处理的线上突发问题
  • git stash //将当前工作区暂存修改
  • git stash list //查看当前已经保存的暂存区修改列表
  • git stash pop stash{0} ;//将当前的暂存修改stash{0}还原到工作区
6. rm – 删除文件
  • git rm -rf 文件/文件夹

3.Git 版本回退

1.文件当前已经add 但是没有commit
  • git checkout 文件/commit id /分支 //使用这个命令可以从暂存区中的文件/或者某个commit的文件/分支 来覆盖当前工作区的文件
  • git clean //git checkout 这个命令可以覆盖掉已经追踪的文件,即已经存在与暂存区的文件,但是对于新创建的文件是不能删除掉的,所以这个时候就需要git clean 命令了
  • git clean -n //这是一次git clean演习,会告诉你有哪些文件会被删除,但是不会执行clean命令
  • git clean -f 删除当前目录下所有没有被追踪的文件,但是不会删除.gitignore中的文件
  • git clean - f path //删除指定目录下的文件
  • git clean -df //删除当前目录下没有被追踪的文件和文件夹
  • git clean -xf //删除当前目录下没有被追踪过的文件和文件夹,不管他是否是在.gitignore中存在
2.文件已经commit 但是没有push
  • git reset --hard HEAD~{n} //版本回退从HEAD前的N个版本,并且使用该commit的内容覆盖掉工作区的内容
3. 文件已经push到remote远程仓库
3.1 如果没有其他开发者基于我们想要回退的版本做修改的话
  • git revert commit id //命令会将版本回退到指定的commit id时候,但是这个时候如果产生了冲突需要手动解决,然后commit & push 到远程仓库,这里不推荐使用git reset 的原因是 git reset 会将记录给删除
3.2 如果已经有其他开发者基于我们像回退的版本做了修改的话

我们可以将我们想要回退的版本创建一个新的分支,然后在新的分支上将其他开发者的代码改动合并到新分支上来,然后切换到master分支,采用git merge 命令合并新创立的分支

4. 多客户端之间的同步

对于origin这个中央仓库来说,所有的开发者都可以在这里push和pull代码,但是如果有两个人协同开发,但是又不想上传到中央仓库的话我们就可以将对方的主机和文件路径设置为一个远程仓库,然后我们就可以执行push和pull操作协同开发了假如有同事A和B,同事A机器的IP是192.168.2.128,同事B机器的IP是192.168.2.129,现在同事A和同事B想项目同步。此时我们
可以使用ssh协议同步,在同事A的机器上

git remote add ubuntu_3 ssh://B@192.168.2.129/workpath

5. 版本控制管理

  • git branch – 查看当前的所有分支
  • git branch -a – 查看当期所有分支包括远程分支
  • git branch develop – #创建develop分支
  • git checkout -b feature/FT-12 //创建一个feature的FT-12分支
  • git checkout/switch develop //切换分支
  • git merge FT-12 //合并分支
  • git branch -d FT-12 //删除分支
  • git push -u origin FT-12 推送到远程分支
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值