git常用命令和基本使用

git常用命令和基本使用

1、环境配置

git所有的配置其实都保存在本地配置文件

  • 编辑Git配置文件

    $ git config -e [--global]
    
  • 查看配置

    git config -l
    
  • 查看不同级别的配置

    # 查看系统config
    git config --system --list
    
    # 查看当前用户config
    git config --global  --list
    
  • 设置用户名和邮箱

    • 用户名
    git config --global user.name "kuangshen"
    
    • 邮箱
    git config --global user.email 24736743@qq.com
    

只需要做一次这个设置,如果你传递了--global 选项,因为Git将总是会使用该信息来处理你在系统中所做的一切操作。如果你希望在一个特定的项目中使用不同的名称或e-mail地址,你可以在该项目中运行该命令而不要--global选项。总之--global为全局配置,不加为某个项目的特定配置。

2、项目配置

  • 本地仓库搭建

    • 创建全新的仓库,需要在GIT管理的项目的根目录执行

       # 在当前目录新建一个Git代码库
       git init
       # 执行后可以看到,仅仅在项目目录多出了一个.git目录,关于版本等的所有信息都在这个目录里面。 
      
    • 克隆远程仓库

      # 克隆一个项目和它的整个代码历史(版本信息)
       git clone [url]
      

3、文件命令

  • 添加当前目录的所有文件到暂存区

    git add hello.txt # 指定文件
    git add . # 所有文件
    
  • 查看指定文件状态

    git status hello.txt
    
  • 查看所有文件状态

    git status # 详细格式
    git status -s # 简约格式
    
  • 将暂存区文件取消暂存

     git reset . # 取消所有
     git reset hello.txt # 取消指定文件
    
  • 删除文件

    git rm hello.txt # 删除工作区文件
    git commit -m "delete hello.txt" # 提交之后,便删除了暂存区的文件
    

4、分支命令

# 列出所有本地分支
git branch

# 列出所有远程分支
git branch -r

# 新建一个分支,但依然停留在当前分支
git branch [branch-name]

# 新建一个分支,并切换到该分支
git checkout -b [branch]

# 切换分支
git checkout [branch-name]

# 合并指定分支到当前分支,有时候合并操作不会如此顺利。 如果你在两个不同的分支中,对同一个文件的同一个部分进行了不同的修改,Git 就没办法合并它们,同时会提示文件冲突。此时需要我们打开冲突的文件并修复冲突内容,最后执行git add命令来标识冲突已解决
$ git merge [branch]

# 推送至远程分支
git push origin b1 # origin:仓库名,b1:分支名

# 删除分支,如果要删除的分支中进行了一些开发动作,此时执行上面的删除命令并不会删除分支,如果坚持要删除此分支,可以将命令中的-d参数改为-D,如果要删除远程仓库中的分支,可以使用命令git push origin –d branchName
$ git branch -d [branch-name]

# 删除远程分支
$ git push origin --delete [branch-name]
$ git branch -dr [remote/branch]

5、代码提交

  • 提交暂存区文件到本地仓库区

    git commit -m "hello git" # 引号内是自定义备注信息
    

6、查看日志

git log

7、远程仓库

  • 查看已经配置的远程仓库服务器

    如果想查看已经配置的远程仓库服务器,可以运行 git remote 命令。 它会列出指定的每一个远程服务器的简写。 如果已经克隆了远程仓库,那么至少应该能看到 origin ,这是 Git 克隆的仓库服务器的默认名字

    git remote
    
  • 添加远程仓库

    git remote add my_project https://gitee.com/y-wee/my_project.git # my_project为仓库名,后面跟的是仓库地址
    
  • 移除远程仓库

    git remote rm my_project # my_project为仓库名
    

    注意:此命令只是从本地移除远程仓库的记录,并不会真正影响到远程仓库

  • 抓取远程仓库

    git fetch my_project # git fetch 是从远程仓库获取最新版本到本地仓库,不会自动合并
    git merge my_project/master # 手动合并
    
  • 拉取远程仓库

     git pull my_project master # 从远程仓库获取最新版本并merge到本地仓库
    

    注意:如果当前本地仓库不是从远程仓库克隆,而是本地创建的仓库,并且仓库中存在文件,此时再从远程仓库拉取文件的时候会报错(fatal:refusing to merge unrelated histories ),解决此问题可以在git pull命令最后加入参数--allow-unrelated-histories

  • 推送到远程仓库

    git push my_project master # my_project为仓库名,master为分支名
    

8、忽略文件

有些时候我们不想把某些文件纳入版本控制中,比如数据库文件,临时文件,设计文件等在主目录下建立".gitignore"文件,此文件有如下规则

  • 忽略文件中的空行或以井号(#)开始的行将会被忽略。
  • 可以使用Linux通配符。例如:星号(*)代表任意多个字符,问号(?)代表一个字符,方括号([abc])代表可选字符范围,大括号({string1,string2,...})代表可选的字符串等。
  • 如果名称的最前面有一个感叹号(!),表示例外规则,将不被忽略。
  • 如果名称的最前面是一个路径分隔符(/),表示要忽略的文件在此目录下,而子目录中的文件不忽略。
  • 如果名称的最后面是一个路径分隔符(/),表示要忽略的是此目录下该名称的子目录,而非文件(默认文件或目录都忽略)。
*.txt        #忽略所有.txt结尾的文件,这样的话上传就不会被选中!
!lib.txt     #但lib.txt除外
/temp        #仅忽略项目根目录下的TODO文件,不包括其它目录temp
build/       #忽略build/目录下的所有文件
doc/*.txt    #会忽略 doc/notes.txt 但不包括 doc/server/arch.txt

更多命令参考:https://gitee.com/all-about-git

记得快乐
原文地址:https://www.cnblogs.com/Y-wee/p/13859210.html