Git使用方法及操作命令

Git使用方法及操作命令

git 生成key命令
  1.   生成key命令:ssh-keygen -T rsa "邮箱地址" 
  2.   cd ~/.ssh进入.ssh文件下可以看到 id_rsa id_rsa.pub(公钥和私钥)

git 配置文件

  1. git的配置文件位置
    针对所有用户:/etc/gitconfig
    针对当前用户: ~/.gitconfig

  2. 查看配置的方法

    git config --list
    
    
  3. 修改配置的方法

    git config --global user.name "zhaoheqiang"  (修改的是~/.gitconfig)
    git config --system user.name "zhaoheqiang"  (修改的是/etc/gitconfig)
  • git config --system user.email "quiniton@163.com" (修改的是/etc/gitconfig)

git 基本使用

  1. clone现有仓库

    git clone URL  (URL支持git,ssh,http,https等各种协议)
    
    
  2. git中文件的各个状态

    • unstaged - git仓库中没有此文件的相关记录
    • modified - git仓库中有这个文件的记录,并且此文件当前有改动
    • staged - 追加,删除或修改的文件被暂时保存,这些追加,删除和修改并没有提交到git仓库
    • commited - 追加或修改的文件被提交到本地git仓库(git仓库中大部分都是这种文件,所以git status不显示这些文件)
  3. 查看git仓库中各文件状态

    git status
  4. 初始化一个仓库

    git init
    
    

    在当前文件夹下生成.git目录,完成初始化,此时此文件夹下的所有文件处于unstaged状态

  5. 追加文件

    git add test.rb
    
    

    test.c的文件变为staged状态,其他文件还是unstaged状态

    5.1 追加文件的结果1 - 恢复为原先状态(变为unstaged)

    git rm --cache test.rb
    
    

    5.2 追加文件的结果2 - 提交到git仓库(变为commited)

    git commit -m "edit activity show slowly question"
  6. 修改文件

    echo "this is my first project"  >> test.rb
    
    

    test.rb的状态变为modified

    6.1 修改文件的结果1

    git add test.rb  (暂时保存修改的内容,即变为staged)
    

    下面有2条路可以选择:
    6.1.1 取消刚才的暂时保存

    git reset test.rb  (状态变回modified)

    6.2.2 将暂存的修改提交到git仓库

    git commit -m "this is my first project"
    
    

    6.2 修改文件的结果2

    git checkout test.rb  (将test.rb恢复为git仓库中的最新版本,即变为commited状态)
    
    
  7. 删除文件
    7.1 从git仓库和磁盘上删除文件

    git rm test.rb  (当前目录中删除了test.rb,在git仓库中暂时删除了test.rb,相当于staged状态)
    
    

    1 从git仓库中删除test.rb并提交到本地库

    git commit -m "this is my first project"  (git仓库以后不再维护test.rb)
    
    

    2 删错了,恢复刚才的操作

    git reset HEAD test.rb  (恢复到删除前的状态,当前目录中已删除的test.rb也恢复了,test.rb仍文commited状态)
    
    

    7.2 仅从git仓库中删除文件

    git rm --cache test.rb (当前目录中没有删除了test.rb,仅在git仓库中暂时删除了test.rb,相当于staged状态)
    

    7.3 误删除后的恢复
    如果删除了一个文件,并且commit之后发现删错了。也可以恢复,

    git log  (查看各次的提交信息)
    git checkout commit号  (恢复到未删除前的commint号,此时删除的文件也恢复到磁盘上了)
    git checkout master  (备份好删除的文件后,再回到最新状态)
    
    

git 远程仓库

  1. 查看远程仓库
    1.1 简单查看-所有仓库git remote(只能查看远程仓库的名字)

    1.2 查看更多内容-所有仓库

    git remote -v (远程仓库的名字及git地址)
    
    

    1.3 查看单个仓库的信息

    git remote show [remote-name]
    
    
  2. 新建远程仓库

    git remote add [remote-name] [url]
    ex. git remote add origin "git@git.oschina.net"
  3. 可以使用git remote --help 查看remote的用法文档
  4. 修改远程仓库

    git remote rename [oldnanme] [newname]
    
    
  5. 删除远程仓库

    git remote rm [remote-name]/git remote remove [remote-name]
    
    
  6. 远程仓库的数据
    5.1 获取数据

    git fetch [remote-name] (获取仓库的所有更新,但是不自动合并当前分支)
    git pull (获取仓库的所有更新, 并且自动合并到当前分支)
    
    

    5.2 上传数据

    git push [remote-name] [branch-name]
    ex. git push origin master
    
    

git 标签

  1. 列出标签
    1.1 查看所有tag

    git tag
    
    

    1.2 查看某个tag

    git show [tag-name]
    
    
  2. 新建标签
    2.1 轻量级tag

    git tag [tag-name]
    
    

    2.2 带标注的tag

    git tag -a [tag-name] -m "tag message"
    
    

    2.3 后期追加tag

    git log --pretty=oneline (查看所有的commit号)
    git tag -a [tag-name] [commit号前几位即可]
    
    
  3. 删除标签

    git tag -d [tag-name]
    
    
  4. 提交标签到远程仓库

    git push [remote-name] --tags
    ex. git push origin --tags
    
    

git 分支

  1. 查看和切换分支

    git branch (查看所有的分支及当前处于哪个分支)
    git branch -v (查看所有的分支的详细信息)
    git branch --merged (查看已经合并的分支)
    git branch --no-merged (查看还没合并的分支)
    git checkout [branch-name] (切换到某个分支)
    
    
  2. 新建分支

    git branch [branch-name]  (新建一个分支)
    git branch -b [branch-name] (新建一个分支并切换到这个分支上)
    
    
  3. 合并分支

    git merge [branch-name]

    ex. 将分支test合并到主分支master
    git checkout master
    git merge test
    
    

    merge时有冲突的文件会列出来,需要手动合并

    将冲突手动解决后,再次用 git status来查看是否还有 unmerged的文件。
    如果没有冲突的文件,就可以 git commit 来提交这次合并了。

  4. 删除分支

    git branch -d [branch-name]
    或者 git branch -D [branch-name] (强制删除某个还未合并的分支)
    
    
  5. 远程分支相关
    5.1 新建远程分支

    1. git checkout [local_branch] (首先进入想要上传的分支)
    2. git remote add [remote_repo] [remote_branch]
      (这里的[remote_branch]是远程分支的名字,一般和[local_branch]同名,
      [remote_repo]是远程仓库的名字)

    3. 2 向远程分支推送数据

      git push [remote_repo] [remote_branch]

    4. 3 删除远程分支

      git push [remote_repo] :[remote_branch] (注意远程分支前有个":")

  6. 合并分支的另一个方法:衍和,很少使用到

服务器创建 git 仓库, 并将其作为远程仓库

其实 git 是分布式的 SCM. 并不存在谁是服务器, 谁是客户端的问题, 这里所说的服务器上的git仓库, 指的是多人合作开发时, 共用的, 作为最终发布版本的 git 仓库.
这个 git 仓库就相当于你在 github/gitoschina 上建的仓库, 会将你在各个电脑上做的代码等提交到上面进行统一管理.

  1. 服务端 (远程 git 仓库)

    • 生成用于git服务的账户 (一般就用git)

      groupadd group_name
      useradd -m -g group_name 账户名
      
      
    • 初始化服务端的git 仓库

      cd ~/
      mkdir git-repo
      cd git-repo
      mkdir test.git
      cd test.git
      git --bare init
      
      
  2. 客户端 (本地 git 仓库)

    • 新建本地git 仓库

      cd /home/zhaoheqiang/Desktop/projects
      mkdir test && cd test
      git init
      
      
    • 初始化本地仓库

      touch README
      git add README
      git commit -m 'first commit for init'
      
      
    • 设置git用户信息

      git config --global user.name "zhaoheqiang"
      git config --global user.email "quiniton@163.com"
      
      
    • 关联远程仓库

      git remote add origin gituser@<server address>:~/test.git/
      
      
    • 将本地仓库提交到远程

      git push origin master
      
      
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值