img

git中一些选项

-d

–delete:删除

-D

–delete --force的快捷键

-f

–force:强制

-m

–move:移动或重命名

-M

–move --force的快捷键

-r

–remote:远程

-a

–all:所有

查看提交历史

git log

git show commit-id filename

git log -p filename #注释:可以显示该文件每次提交的diff (文件名后缀都要)

初始化git仓库

git init

查看工作区

git status

将修改文件由工作区提交到暂存区(可以多次提交):

git add -A #注释:提交所有变化

git add -u #注释: 提交被修改(modified)和被删除(deleted)文件,不包括新文件(new)

git add . #注释:提交新文件(new)和被修改(modified)文件,不包括被删除(deleted)文件

将文件从暂存区提交到版本库(生成版本号):

git commit -m “备注”

回滚

git reset --hard {commitId} #注释:加了–hard的,有没有commit的是没有区分的(影响暂存区和工作区)

例子

git reset --hard 7d72d974a9ed718dc1f50194879d4409a9f5db4b

git push -f #注释: 表示将目前自己本机的代码库推送到远端,并覆盖 (自己开发采用,多人会被打)

提交到远程仓库

git push

当前分支与多个主机存在追踪关系,可以用-u指定默认主机:

git push -u origin --all #注释:当遇到这种情况就是不管是否存在对应的远程分支,将本地的所有分支都推送到远程主机
git push -u origin --tags #注释: 把标签也一并提交

把旧地址的分支复制到新的地址(新地址没有该分支才能成功):

在旧的项目运行

git remote add new 新项目地址 #注释: 关联一个新的仓库

或者

git remote add new master #注释: 添加仓库名为new

git remote set-url new 新项目地址 #注释: 为仓库new设置地址

git pull #注释: 更新代码

git checkout -b newbranch #注释: 表示以当前分支的当前状态创建新分支并切换到新分支

git push new #注释:把当前分支提交到新仓库上

分支名称想修改(本地和远程一起修改):

git branch -m oldbranch newbranch #注释: 将old分支该名称为new
git push --delete origin oldbranch #注释:删除远程的old分支
git push origin newbranch #注释: 把新的这个分支再提交上去

删除该名称的仓库地址:

git remote rm oldorigin

对比和该分支有啥不同:

git diff origin/dev

同一个git仓库的分支合并:

git branch -a # 注释:查看分支列表

git checkout dev # 注释:切换到本地dev分支

git pull # 注释:更新本地dev分支

git checkout master # 注释:切换到master分支

git pull # 注释:更新本地master分支

git merge dev # 注释:合并本地dev到本地master

git push # 注释:将本地master推到远程master

删除本地分支 and 删除远程分支:

git branch -D 分支名称 #注释: 删除本地分支
git push origin --delete 分支名称 #注释: 删除远程分支

将旧的项目往新的合并:(这些命令是在新的项目执行的)

cd old
git checkout dev #注释:假设是往new的dev分支合并
git remote add old 旧的git地址
git fetch old dev:old #注释: git fetch <远程主机名> <远程分支名>:<本地分支名> 如果远程分支和当前分支合并,那么冒号后面可以省略
git merge old dev --allow-unrelated-histories #注释:新项目应该是不能直接合并的,这时候就需要强制合并分支

把项目copy到项目组下面的步骤:

  1. git clone 新git地址
  2. git remote add old 旧的git地址
  3. git fetch old
  4. git checkout test(选择你要切换的分支)
  5. git chekout master
  6. git merge test --allow-unrelated-histories
  7. git commit -m “”
  8. git push
  9. git remote remove old
    如果是还没有提交过的话,应该不用强制合并
    还有如果在新项目地址已经修改过的,强制合并请慎重
Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐