git命令

192 阅读3分钟

推荐

idea中git操作-推荐

clone项目

git拉取文件到本地

    git clone [url地址] [本地文件名]

本地初始化

本地文件关联到git,还未推送

#如果是第一次,先初始化
    git init
#查看哪些是要上传的文件(红色的是没有add,绿色是add后没有commit)
    git status
#将所有修改添加到暂存区
    git add . 
#提交到存储库
    git commit -m "提交" 
#如果是第一次,将本地分支改名为main
    # github把master默认分支改为了main(https://www.bilibili.com/read/cv14795975)
    git branch -M main
#如果是第一次,需将本地仓库关联到 远程仓库 上
    git remote add origin https://github.com/cxr01/zhangsanshuo.git

查看远程主机

即关联的远程仓库

# 列出所有远程主机名。
    # clone 项目到本地时,所使用的远程主机自动被Git命名为origin
    git remote
# 查看远程主机网址
    git remote -v
# 查看远程主机详细信息
    git remote show <主机名>
# 添加远程主机(一般用于本地初始化init完后关联远程仓库)
    git remote add <主机名> <网址>
# 删除远程主机
    git remote rm <主机名>
# 远程主机的改名
    git remote rename <原主机名> <新主机名>

推送

# 推送
    git push
# 推送到远程仓库 origin仓库 的 main分支 上
    git push -u origin main
    -u:如果当前分支与多个主机存在追踪关系,那么这个时候-u选项会指定一个默认主机,这样后面就可以不加任何参数使用git push。
​

拉取

# 同步所有的远程分支到本地,再把最新提交的分支合并到当前分支
# 所以建议只有一个分支时使用
    git pull 
# 只获取了指定分支 master 的最新 commit 并合并到当前分支
    git pull origin master
​
# 同步所有的远程分支到本地
    git fetch
# 只获取了指定分支 master 的最新 commit
    git fetch origin master

分支

# 查看所有分支
    git branch -a
# 查看当前分支
    git branch
# 创建dev分支
    git branch dev
# 切换到dev分支
    git checkout dev
# 创建dev并切换到dev分支上
    git checkout -b dev

合并

注意:操作前一定要切换到要对应的分支

# 切换到dev分支
    git checkout dev
    
# 将master分支合并到当前分支
    git merge master
​
# 更新main分支的最新修改到当前分支。会将本地修改先放到一边,然后把其他分支main最新修改拿过来,接着在最新修改之上把我的修改放回去。放回去的过程可能会出现rabase conflict,此时就需要手动选择需要的代码 
    git rabase main

概念

pull 和 fetch

git pull = git fetch + git merge

fetch 只是从远程仓库拉取下来到本地仓库,可以通过 idea 获取其他方式查看提交下来的代码和历史记录。再决定是否 merge 到工作区(即我们写代码的地方)

当不指定推送/拉取的仓库和分支时如何操作

参考:Git中的push和pull的默认行为

rebase和merge

参考:【Git】:git rebase和git merge有什么区别?