Git使用方法及操作命令

Git使用方法及操作命令

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

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

__ 查看配置的方法__

git config --list

** 修改配置的方法**

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 基本使用

** clone现有仓库**

git clone URL (URL支持git,ssh,http,https等各种协议)

** git中文件的各个状态**

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

** 查看git仓库中各文件状态**

git status

** 初始化一个仓库**

git init

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

** 追加文件**

git add test.rb

_ ps: test.rb的文件变为staged状态,其他文件还是unstaged状态_

  1. 追加文件的结果1 - 恢复为原先状态(变为unstaged)
git rm --cache test.rb
  • 追加文件的结果2 - 提交到git仓库(变为commited)
git commit -m "edit activity show slowly question"

** 修改文件**

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

_ ps: test.rb的状态变为modified_

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

下面有2条路可以选择:
1. 取消刚才的暂时保存
git git reset test.rb (状态变回modified)
* 将暂存的修改提交到git仓库
git git commit -m "this is my first project"

  • 修改文件的结果2
git checkout test.rb (将test.rb恢复为git仓库中的最新版本,即变为commited状态)

** 删除文件**

  1. 从git仓库和磁盘上删除文件
git rm test.rb (当前目录中删除了test.rb,在git仓库中暂时删除了test.rb,相当于staged状态)
  • 从git仓库中删除test.rb并提交到本地库
git commit -m "this is my first project" (git仓库以后不再维护test.rb)
  • 删错了,恢复刚才的操作
git reset HEAD test.rb (恢复到删除前的状态,当前目录中已删除的test.rb也恢复了,test.rb仍文commited状态)
  • 仅从git仓库中删除文件
git rm --cache test.rb (当前目录中没有删除了test.rb,仅在git仓库中暂时删除了test.rb,相当于staged状态)
  • 误删除后的恢复如果删除了一个文件,并且commit之后发现删错了。也可以恢复,
git log (查看各次的提交信息)
git checkout commit号 (恢复到未删除前的commint号,此时删除的文件也恢复到磁盘上了)
git checkout master (备份好删除的文件后,再回到最新状态)

git 远程仓库

** 查看远程仓库**

    • 简单查看-所有仓库git remote(只能查看远程仓库的名字)
    • 查看更多内容-所有仓库
      git remote -v (远程仓库的名字及git地址)
    • 查看单个仓库的信息
      git remote show [remote-name]

** 新建远程仓库**

git remote add [remote-name] [url]
ex. git remote add origin "git@git.oschina.net"

_ ps: 可以使用git remote --help 查看remote的用法文档_

** 修改远程仓库**

git remote rename [oldnanme] [newname]

** 删除远程仓库**

git remote rm [remote-name]/git remote remove [remote-name]

** 远程仓库的数据**

  • .1 获取数据
git fetch [remote-name] (获取仓库的所有更新,但是不自动合并当前分支)
git pull (获取仓库的所有更新, 并且自动合并到当前分支)
  • 2 上传数据
git push [remote-name] [branch-name]
ex. git push origin master

git 标签

** 列出标签**
1.1 查看所有tag

git tag

1.2 查看某个tag

git show [tag-name]

** 新建标签**
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号前几位即可]

** 删除标签**

git tag -d [tag-name]

** 提交标签到远程仓库**

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

git 分支

** 查看和切换分支**

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

** 新建分支**

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

** 合并分支**

git merge [branch-name]
ex. 将分支test合并到主分支master
git checkout master
git merge test

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

** 删除分支**

git branch -d [branch-name]或者 git branch -D [branch-name] (强制删除某个还未合并的分支)

** 远程分支相关**

  1. 新建远程分支
git checkout [local_branch] (首先进入想要上传的分支)
git remote add [remote_repo] [remote_branch]
(这里的[remote_branch]是远程分支的名字,一般和[local_branch]同名,[remote_repo]是远程仓库的名字)
  • 向远程分支推送数据
git push [remote_repo] [remote_branch]
  • 删除远程分支
git push [remote_repo] :[remote_branch] (注意远程分支前有个":")

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

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

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

groupadd group_nameuseradd -m -g group_name 账户名

** 初始化服务端的git 仓库**

cd ~/mkdir 
git-repocd 
git-repomkdir test.git 
cd test.git
git --bare init

** 客户端 (本地 git 仓库)**

  1. 新建本地git 仓库
cd /home/zhaoheqiang/Desktop/projectsmkdir 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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,547评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,399评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,428评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,599评论 1 274
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,612评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,577评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,941评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,603评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,852评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,605评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,693评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,375评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,955评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,936评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,172评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,970评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,414评论 2 342

推荐阅读更多精彩内容