git 基础操作

git 中分工作区、缓存区、本地库以及远程库几部分。其中,修改本地文件后,通过git add xx文件将修改保存到缓存区,之后再用commit推送修改到本地库中,最后用git push 将本地仓库中的修改推送到服务器上的仓库中。

提交代码的过程:

  • git status 查看本地修改的文件状态
  • git add 文件名,多个文件时用空格分隔,所有文件有.代表
  • git commit -m "comments " 提交代码到本地库,其中-m 指修改说明
  • git push origin 分支名,提交代码到远程分支库
  • 进stash找到你的分支,点commits来看你提交成功了没有
  • create pull request 去最终提交你的代码,其中diff 可以看你的不同

常用git 命令

git配置:

  • git是分布式版本控制系统,安装好git后,需要在终端通过以下命令设置邮箱和用户名:
  • git config --global user.email "xxxx@xxx.com"
  • git config --global user.name "xxxx"
  • 查看配置:git config -l

git stash/clean/log/diff:

  • git stash 把所有没有提交的修改暂存到stash里面,可用git stash pop恢复。git stash 只能缓存在git库中已经被追踪的文件,若文件是新增的没有添加到git中,使用git stash不会缓存该文件
  • git clean -df 删除工作目录中没有被tracked的文件和文件夹,例如新增文件/文件夹
  • git clean -n是一次clean的演习, 告诉你哪些文件会被删除,但不会真的删除
  • git log /git log --pretty=online 查看提交记录
  • git log -n 查看最近n次的修改记录,n为数字
  • git diff 不加参数,对比的是工作目录与缓存区快照之间的差异

 git checkout/reset/rebase/pull:

  • git checkout放弃本地修改,即没有使用git add提交的修改(用法:git checkout -- filename或者git checkout .),但它也只能放弃在git库中已追踪的文件的修改,若是新增文件或目录,则需要手动删除。
  • git reset --hard HEAD命令,将当前分支的指针和暂存区都重置到最近一次提交的状态,从而丢弃所有的本地更改
  • git reset --hard origin/master 把HEAD指向master最新版本,将origin/master换成commitId,即可将本地库代码会退到指定commit点的状态
  • git rebase -i 将本地的多次提交合并为一个,以简化提交历史,例如:git rebase -i HEAD~4 合并最近四次的提交记录
  • git rebase  仓库名/分支名  将仓库名/分支名的最新的分支同步到本地
  • git fetch是将远程主机的最新内容拉到本地,用户在检查了以后决定是否合并到工作本机分支中。
  • git pull 是将远程主机的最新内容拉下来后直接合并,即:git pull = git fetch + git merge,这样可能会产生冲突,需要手动解决。

git branch:

  • git branch 不带参数:列出本地已经存在的分支,并且在当前分支的前面用"*"标记
  • git branch -vv 查看本地分支对应的远程分支
  • git branch -d dev  删除dev分支,如果在分支中有一些未merge的提交,那么会删除分支失败,此时可以使用 git branch -D dev:强制删除dev分支,
  • git branch -m oldName newName 给分支重命名,如果 new_branch 名字分支已经存在,则需要使用-M强制重命名
  • git checkout -b feature  创建并切换分支。在当前分支中做的修改,通过该命令创建并切换分支后,在新分支中也会保留
  • git branch dev 创建名为dev的分支,创建分支时需要是最新的环境,创建分支但依然停留在当前分支
  • git branch -r 查看远程版本库分支列表
  • git branch -a 查看所有分支列表,包括本地和远程

如何修改本地分支名和远程分支名:

情景:将分支名由Branchrelease-4.0.4.x改为release-4.0.4.x1

  1. 将本地旧的分支名Branchrelease-4.0.4.x改为新的分支名release-4.0.4.x1 :git branch -m Branchrelease-4.0.4.x release-4.0.4.x1 
  2. 本地分支修改后通过git branch -vv命令看到远程分支名还是origin/Branchrelease-4.0.4.x,所以还需要更新远程分支名
  3. 删除远程分支git push origin :Branchrelease-4.0.4.x
  4. 创建一个新的远程分支 git push --set-upstream origin release-4.0.4.x1
  5. 查看修改后的分支:git branch -vv 结果是:release-4.0.4.x1      9497a544 [origin/release-4.0.4.x1]

两种提交代码的流程:

拉代码:git clone  address -b branch_name  local_folder

1.先更新本地代码为最新代码,再修改本地代码,提交改动

  • 在提交代码前将本地分支中的代码更新为最新master中的代码:
  • git checkout master 
  • git pull
  • git checkout branch_name
  • git rebase master
  • 然后修改本地代码后,使用git add . ,git commit  -m "comment",git push origin branch_name提交

2.先提交本地代码到本地库,再将master中的最新分支同步到本地库,最后提交改动到远程库

  • 先提交本地代码到本地库,然后将master中的最新分支同步到本地库,再提交代码到本地库:
  • git add .
  • git commit -m "comment"
  • 将master中的最新分支同步到本地库 
  • git checkout master 
  • git pull
  • git checkout branch_name
  • git rebase master
  • 使用git status查看本地代码的状态
  • git push提交代码到远程库

 

posted @ 2019-12-09 14:21  声声慢43  阅读(139)  评论(0编辑  收藏  举报