当前位置:   article > 正文

git 常用操作指令

git 常用操作指令

git clone

git clone 可以将一个远程 Git 仓库拷贝到本地,让自己能够查看该项目,或者进行修改。

  1. 拷贝项目命令格式如下:
  2. git clone [url]

[url] 是你要拷贝的项目。

例如我们拷贝 Github 上的项目:

  1. $ git clone https://github.com/tianqixin/runoob-git-test
  2. Cloning into 'runoob-git-test'...
  3. remote: Enumerating objects: 12, done.
  4. remote: Total 12 (delta 0), reused 0 (delta 0), pack-reused 12
  5. Unpacking objects: 100% (12/12), done.

git config

我们可以通过git config来配置用户名和邮箱地址,便于我们将代码提交到远程仓库,具体格式如下:

  1. git config --global user.name '你的用户名'
  2. git config --global user.email '你的邮箱'

git add

git add 命令可将文件添加到缓存,如新项目中,添加所有文件很普遍,可以使用如下命令:

git add .

注意:add有多种形式,可以add某个文件,某个文件夹,或直接add当前仓库下所有文件

  1. git add 单个文件
  2. git add 文件夹1/ 文件夹2/ ……多个文件夹之间空格隔开
  3. git add .

有时候我们add之后又改了代码,所以想重新add,但是之前add但是没有commit的文件还在,想撤销怎么办呢?

  1. git status //查看已经add的
  2. git reset . //撤销命令reset,此处表示撤销全部

git reset HEAD 命令用于取消已缓存的内容,如我们要取消已提交的test.txt文件,可以如下使用:(撤销单个文件)

git reset HEAD test.txt

git commit

git commit 将缓存区内容添加到仓库中,可以在后面加-m选项,以在命令行中提供提交注释,格式如下:

git commit -m "第一次版本提交"

如果你觉得 每次 commit之前要add一下,想跳过add这一步,可以直接使用 -a选项,如:

git commit -am "第一次版本提交"

我们可以创建一个文件,并将它添加打缓存,之后在提交,具体操作如下:

git rm

如果只是简单地从工作目录中手工删除文件,运行 git status 时就会在 Changes not staged for commit 的提示。要从 Git 中移除某个文件,就必须要从已跟踪文件清单中移除,然后提交。可以如下使用:

git rm <file>

如果删除之前修改过并且已经放到暂存区域的话,则必须要用强制删除选项 -f

git rm -f <file>

可以递归删除,即如果后面跟的是一个目录做为参数,则会递归删除整个目录中的所有子目录和文件:

  1. git rm –r *
  2. rm -rf .git/ //强制删除暂存文件

git branch/checkout

  • git branch:查看分支命令
  • git branch (branchname):创建分支命令
  • git checkout (branchname):切换分支命令
  • git merge:合并分支命令
  • git branch -d (branchname):删除分支命令

git branch                           #查看分支
git branch -a                        #查看所有分支,包括远程和本地
git branch name                      #创建分支
git checkout name                    #切换分支到name
git checkout -b name                 #创建一个新的分支并且立即切换到它
git merge name                       #在分支master上合并分支name
git branch -d name                   #删除本地分支name
git push origin --delete name        #删除远程分支  
 

git pull/push

git fetchgit pull的区别:

  1. git fetch:相当于是从远程获取最新版本到本地,不会自动合并。

  2. git pull:相当于是从远程获取最新版本并merge到本地。

  3. git push
    git push 推送你的新分支与数据到某个远端仓库命令,格式如下:

  1. 更新操作:
  2. $ git pull
  3. $ git pull origin
  4. 将远程主机 origin 的 master 分支拉取过来,与本地的 brantest 分支合并。
  5. git pull origin master:brantest
  6. 如果远程分支是与当前分支合并,则冒号后面的部分可以省略。
  7. git pull origin master
  1. git push 命令用于从将本地的分支版本上传到远程并合并。
  2. 命令格式如下:
  3. git push <远程主机名> <本地分支名>:<远程分支名>
  4. 如果本地分支名与远程分支名相同,则可以省略冒号:
  5. git push <远程主机名> <本地分支名>
  6. 以下命令将本地的 master 分支推送到 origin 主机的 master 分支。
  7. $ git push origin master //等价于$ git push origin master:master
  8. 或git push -u origin master
  9. 如果origin端还不存在本地分支dev,想将本地分支推送到远端可以使用
  10. git push --set-upstream origin dev
  11. 删除主机的分支可以使用 --delete 参数,以下命令表示删除 origin 主机的 master 分支:
  12. git push origin --delete master

git rebash/merge

在开发中经常需要基于一个分支来创建子分支,然后在子分支上进行开发,最后验证功能无问题才会将子分支合并到主分支上去。将子分支合并到主分支上一般有两种方案,分别为

  • git merge:这种合并会在对应的主分支上产生合并的提交,以及对应子分支的提交情况。
  • git rebase:这种合并是变基的操作,相当于将子分支的 commit 直接提交到主分支上,此时主分支上不会有合并记录和对应子分支的提交情况,看起来比较清爽。

现将子分支 dev 的代码以git rebase的方式合并到主分支 main上且不要留下合并的记录,此时相当于将子分支的所有 commit 提交到当前的主分支上。如下:
B , C为主分支上的提交,DE 为子分支的提交,现在要将子分支的两笔 commit 合并到主分支上。

 初始时状态:

对子分支 dev 进行git rebase 之后,子分支的 commit 就被合并到主分支上,此时主分支的提交记录如下图所示:

git rebase 流程
  1. # 1. 切换到主分支 main 上,其它分支的代码将被合并到该分支上
  2. git checkout main
  3. # 2. 变基操作,对子分支 dev 进行变基操作,相当于将其所有的 commit 都提交到主分支(当前所在的分支)上去
  4. git rebase dev
  5. # 3. 变基操作成功后,此时主分支上的代码选哟推送到远程代码仓中
  6. git push

【注意事项】

  1. git rebase 的分支是基于目标分支进行创建的。
  2. git rebase 可能会遇到冲突需要解决

但是如果是多个人在维护主分支main时,自己维护分支dev1,如果自己分支超前main分支,r如果想将dev1分支修改的内容合并到main分支

  1. 则最好先同步一下main分支,即将dev1变基onto main
  2. 操作:
  3. git checkout dev1
  4. git rebash main
  5. git push
  6. 此时dev1和main分支同基
  7. 然后将dev1修改合并到main分支
  8. 操作:
  9. git checkout main
  10. git merge dev1

常见的操作命令:

参考:

Git 常用基本命令使用详细大全_git命令行-CSDN博客

git常用命令总结_git_一头小驴-GitCode 开源社区 (csdn.net)

https://www.cnblogs.com/Jeffxu/p/17968795

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/741560
推荐阅读
相关标签
  

闽ICP备14008679号