单机上使用git - 安装

  • yum install -y git mkdir /data/gitroot
  • cd /data/gitroot
  • git init //初始化仓库
  • echo -e “123\naaa\n456\nbbb” > 1.txt //创建一个新文件
  • git add 1.txt//把1.txt添加到仓库
  • git commit -m “add new file 1.txt” //add完了必须要commit才算真正把文件提交到git仓库里
  • 再次更改1.txt
  • git status //查看当前仓库中的状态,比如是否有改动的文件
以下两个命令,修改时会记录修改人的信息,这样才能跟踪变化,没有设置需要设置一下git config --global user.email "you@example.com"git config --global user.name "Your Name"[root@draft git1]# git status   #全部文件都同步的状态;
# 位于分支 master
无文件要提交,干净的工作区
[root@draft git1]# git status  #有修改时的状态,需要add - commit更新;或恢复到上一个状态都可以;
# 位于分支 master
# 尚未暂存以备提交的变更:
#   (使用 "git add <file>..." 更新要提交的内容)
#   (使用 "git checkout -- <file>..." 丢弃工作区的改动)
#
#   修改:      README.md
#
修改尚未加入提交(使用 "git add" 和/或 "git commit -a")
  • git diff 1.txt //可以对比1.txt本次修改了什么内容,相比较仓库里面的版本

单机上使用git - 版本回退

  • 多更改几次1.txt,然后add,commit
  • git log//查看所有提交记录
  • git log --pretty=oneline//一行显示
  • git reset --hard f7c8e9//回退版本,其中后面跟的字符串是简写
  • 撤销修改
    rm -f 1.txt//不小心删除了1.txt (情况1)
    git checkout – 1.txt//恢复1.txt
    如果1.txt文件修改,add后但没有commit,再想回退到上一次提交的状态(情况2),可以使用git reset HEAD 1.txt,再执行git checkout – 1.txt
  • git reflog //查看所有历史版本
[root@draft git2]# git reflog
29c487e HEAD@{0}: commit: rm   #文件已删除;
500a08a HEAD@{1}: reset: moving to 500a08a
8e860db HEAD@{2}: commit: mo 5
fee3e53 HEAD@{3}: reset: moving to fee3e53
500a08a HEAD@{4}: reset: moving to 500a08
45d1c39 HEAD@{5}: reset: moving to 45d1c
500a08a HEAD@{6}: commit: mo 4
63c54a6 HEAD@{7}: commit: mo 3
fee3e53 HEAD@{8}: commit: mo 2
45d1c39 HEAD@{9}: commit: mo 1
9c38131 HEAD@{10}: commit (initial): add new
[root@draft git2]# git log --pretty=oneline  #commit记录;
29c487e3f9737409424ea4d0bfcd2e9f32d29673 rm
500a08a72af0328b1f907506ca0536cfba5050a8 mo 4
63c54a68b6c5d660be666c62bb994a5814eded1a mo 3
fee3e53c292138e4e17fa5f880c09acf581bdab4 mo 2
45d1c39ad12883460fb7a8a398e7a25986ef1a6b mo 1
9c3813143a09568e93ece5f8fd7a4a0985dd0a45 add new
[root@draft git2]# ls   #没有文件;
[root@draft git2]# git reset --hard fee3e53   #回退到mo 2;
HEAD 现在位于 fee3e53 mo 2
[root@draft git2]# git log --pretty=oneline
fee3e53c292138e4e17fa5f880c09acf581bdab4 mo 2
45d1c39ad12883460fb7a8a398e7a25986ef1a6b mo 1
9c3813143a09568e93ece5f8fd7a4a0985dd0a45 add new
[root@draft git2]# git reflog
fee3e53 HEAD@{0}: reset: moving to fee3e53   #增加了一行;
29c487e HEAD@{1}: commit: rm
500a08a HEAD@{2}: reset: moving to 500a08a
8e860db HEAD@{3}: commit: mo 5
fee3e53 HEAD@{4}: reset: moving to fee3e53
500a08a HEAD@{5}: reset: moving to 500a08
45d1c39 HEAD@{6}: reset: moving to 45d1c
500a08a HEAD@{7}: commit: mo 4
63c54a6 HEAD@{8}: commit: mo 3
fee3e53 HEAD@{9}: commit: mo 2
45d1c39 HEAD@{10}: commit: mo 1
9c38131 HEAD@{11}: commit (initial): add new

单机上使用git - 删除文件

  • git rm 2.txt
  • git commit -m “rm 2.txt”

建立远程仓库

  • 首先到 https://github.com 注册一个账号,创建自己的git,点repositories 再点new
    需要最新的浏览器支持,如safari,不然显示不出验证码
  • 名字自定义,比如叫git2 - 选择public - 点create repository
    出现页面和命令,指引在本地推送一个文件到远程仓库上;

    可以以多种方式连接,都有具体的指引;
    也有指引将本地库同步到远程,从其他代码管理平台导入;
    连接过后,之后就可以更方便的更新信息;
  • 这里使用SSH连接,把公钥上传到github系统中;
    添加key:右上角点自己头像,选择settings,左侧选择SSH and GPG keys
    左侧点New SSH key,把linux机器上的~/.ssh/id_rsa.pub内容粘贴到这里
  • 把本地仓库与远程仓库连接的重要命令
    git remote add origin git@github.com:tanyyinyu/git2.git
    git push -u origin master
  • 操作后下一次再推送,就可以直接 git push
    更新到本地库是add - commit
    更新到远程库是add - commit - push

克隆远程仓库

  • 克隆一个自己的仓库
[root@draft git]# rm -rf git1
[root@draft git]# ls
git2
[root@draft git]# git@github.com:tanyyinyu/git1.git^C
[root@draft git]# git clone git@github.com:tanyyinyu/git1.git
正克隆到 'git1'...
Warning: Permanently added the RSA host key for IP address '13.250.177.223' to the list of known hosts.
remote: Enumerating objects: 9, done.
remote: Counting objects: 100% (9/9), done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 9 (delta 0), reused 3 (delta 0), pack-reused 0
接收对象中: 100% (9/9), done.
[root@draft git]# cd git1
[root@draft git1]# ls
README.md
[root@draft git1]# touch 1.txt
[root@draft git1]# git add 1.txt
[root@draft git1]# git commit -m "add txt"
[master 5271920] add txt1 file changed, 0 insertions(+), 0 deletions(-)create mode 100644 1.txt
[root@draft git1]# git push   #远程git界面会更新新的文件;
warning: push.default 未设置,它的默认值将会在 Git 2.0 由 'matching'
修改为 'simple'。若要不再显示本信息并在其默认值改变后维持当前使用习惯,
进行如下设置:git config --global push.default matching若要不再显示本信息并从现在开始采用新的使用习惯,设置:git config --global push.default simple参见 'git help config' 并查找 'push.default' 以获取更多信息。
('simple' 模式由 Git 1.7.11 版本引入。如果您有时要使用老版本的 Git,
为保持兼容,请用 'current' 代替 'simple' 模式)Counting objects: 4, done.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 268 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To git@github.com:tanyyinyu/git1.gitce537ac..5271920  master -> master
  • 远程界面更新文件
    进入相应文件,点击右下方的笔图标

    修改内容后 - commit changes (保存了内容)

本地下载更新

[root@draft git1]# git pull
remote: Enumerating objects: 5, done.
remote: Counting objects: 100% (5/5), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), done.
来自 github.com:tanyyinyu/git15271920..5ea9c55  master     -> origin/master
更新 5271920..5ea9c55
Fast-forward1.txt | 1 +1 file changed, 1 insertion(+)
[root@draft git1]# cat 1.txt
change from far end
  • 克隆一个别人的仓库
[root@draft git]# git clone  git@github.com:aminglinux/lanmp.git   #由于没有这个仓库的私钥或没有上传自己的公钥,不能对此仓库写入;
正克隆到 'lanmp'...
remote: Enumerating objects: 32, done.
remote: Total 32 (delta 0), reused 0 (delta 0), pack-reused 32
接收对象中: 100% (32/32), 5.99 KiB | 0 bytes/s, done.
处理 delta 中: 100% (6/6), done.
[root@draft git]# cd lanmp/
[root@draft lanmp]# ls
lanmp.sh  README.md

分支管理

  • 分支基础
    git branch //查看分支
    git branch aming //创建分支
    git checkout aming //切换到了aming分支下
    再用git branch查看,会看到有两个分支master和aming,当前使用的分支前面会有一个*在aming分支下 ,编辑2.txt,并提交到新分支
    echo “askdfjlksadjflk” > 2.txt
    git add 2.txt
    git commit -m “laksjdflksjdklfj”
    切换回master分支
    git checkout master //此时cat 2.txt发现并没有更改内容
[root@draft git2]# git branch
* master
[root@draft git2]# git branch tany
[root@draft git2]# git branch
* mastertany
[root@draft git2]# git checkout tany
切换到分支 'tany'
[root@draft git2]# git branch master
* tany
[root@draft git2]# ls
1.txt
[root@draft git2]# echo "kjkj branch tany " >> 1.txt
[root@draft git2]# git add 1.txt
[root@draft git2]# git commit -m "change"
[tany bd83327] change1 file changed, 1 insertion(+)
[root@draft git2]# cat 1.txt
lkkl
mo 1
mo 2
kjkj branch tany
[root@draft git2]# git checkout master
切换到分支 'master'
[root@draft git2]# cat 1.txt
lkkl
mo 1
mo 2
  • 分支的合并

git checkout master //合并分支之前,先切换到目标分支
git merge aming //把aming分支合并到了master
如果master分支和aming分支都对2.txt进行了编辑,当合并时会提示冲突,需要先解决冲突才可以继续合并。
解决冲突的方法是在master分支下,编辑2.txt,改为aming分支里面2.txt的内容。 然后提交2.txt,再合并aming分支。
但是这样有一个问题,万一master分支更改的内容是我们想要的呢? 可以编辑2.txt内容,改为想要的,然后提交。切换到aming分支,然后合并master分支到aming分支即可(倒着合并)。合并分支有一个原则,那就是要把最新的分支合并到旧的分支。也就是说merge后面跟的分支名字一定是最新的分支。
git branch -d aming //删除分支 如果分支没有合并,删除之前会提示,那就不合并,强制删除
git branch -D aming //强制删除分支

[root@draft git2]# git merge tany
更新 fee3e53..bd83327
Fast-forward1.txt | 1 +1 file changed, 1 insertion(+)
[root@draft git2]# cat 1.txt
lkkl
mo 1
mo 2
kjkj branch tany
[root@draft git2]# git branch -d tany
已删除分支 tany(曾为 bd83327)。

git单机, 远程仓库, 分支管理相关推荐

  1. Git 远程仓库分支管理

    目录 目录 速查表 关联远程代码仓库 克隆远程仓库 分支管理 创建分支 切换分支 合并分支 删除分支 解决冲突 速查表 指令 作用 git branch 查看分支 git branch newBran ...

  2. Git删除远程仓库分支

    首先使用Git命令查看当前所有分支: 可以看到有master和dev分支,现在要删除远程仓库的dev分支,命令如下: ①首先删除本地分支: git branch -d dev ②删除远程仓库分支: g ...

  3. Git 远程仓库的管理和使用

    要参与任何一个 Git 项目的协作,必须要了解该如何管理远程仓库.远程仓库是指托管在网络上的项目仓库,可能会有好多个,其中有些你只能读,另外有些可以写.同他人协作开发某 个项目时,需要管理这些远程仓库 ...

  4. git 拉取远程仓库分支代码

    git 拉取远程仓库分支代码 本地新建文件夹作为工作区(存放代码的文件夹) 进入该文件,右键选择 git bush here,打开命令窗后,输入初始化命令:git init 命令行:git remot ...

  5. 小乌龟git如何同步远程分支_git同步远程仓库分支

    git命令 1.何谓同步远程分支?有下面几种情况, 1.本地有新分支,远程仓库没有. 2.远程仓库有新分支,本地没有. 3.本地删除了分支,远程也想删除. 4.远程删除了分支,本地也想删除. 第一种情 ...

  6. Git关联远程仓库和分支

    背景 在我们开发过程中经常会将本地代码放到代码仓中. 解决方法有两种,这两种方法都有一个前提就是需要在gitLab中新建一个代码仓. 第一种方法就是先将这个新的远程代码仓拉取到本地,再将本地的代码移植 ...

  7. Eclipse 删除Git远程仓库分支

    Eclipse 删除Git远程仓库分支 一.步骤如下 1.选中项目 --- 右键 --- Team --- Remote --- Push --- 2.选中 "Add delete ref ...

  8. git远程仓库分支的各命令的具体解析(git remote add)

    0 可参考文章 本文重点参考的Git官方中关于git远程仓库的使用教程: 2.5 Git 基础 - 远程仓库的使用 3.5 Git 分支 - 远程分支 1 问题背景 看完上面的教程后,我们再一步一步抠 ...

  9. Git学习笔记:分支管理3

    前言 在补习python的时候主要参考的是廖雪峰的教程Python教程,在学习完后准备完成期末作业时,遇到了一个技术难题,需要初步掌握git,因此开始了git的学习. 本教程参考廖雪峰的Git教程 G ...

最新文章

  1. 1人15篇入选?华人论文知多少?深度分析ICCV2019论文录取背后的那些事儿!
  2. 网站被k不要慌,看看“老油条”们是怎么解决的吧!
  3. linux操作系统学什么,Linux学习-第一天-什么是操作系统
  4. 2017.9.8 线性代数 失败总结
  5. springboot banner.txt 在线制作
  6. 徐家骏写给任正非的辞职信
  7. 决策树分箱-特征工程之数据离散化处理-基于python实现
  8. SAP 下载CSV文件到本机(SAP_CONVERT_TO_TEX_FORMAT)(示例代码) <转载>
  9. 视频教程-新版全面系统完整的人工智能教程-机器学习
  10. faster rcnn理论讲解
  11. 西数发布首款消费级SSD:蓝盘、绿盘齐飞
  12. Rasa开发使用 Rasa_NLU及Rasa_Core模型训练与测试
  13. elasticsearch中忽略大小写模糊搜索实现
  14. android 设置壁纸,Android 代码设置壁纸的方式,兼容各大ROM
  15. 全文搜索 full-text search
  16. 万字长文:五年数据洞察中国餐饮大趋势
  17. 要访问1KB的内存为啥需要10位地址线,而不是13位?
  18. 黑客是如何炼成的(自学黑客4大知识点)
  19. 游戏自评——英雄无敌手游
  20. 如何安装、设置采集卡,如何使用采集卡工具检查采集信号

热门文章

  1. C/C++游戏开发(easyx框架)回合制——魔塔
  2. 花赚福利社~~~~~~青龙脚本
  3. Java中的三种输出print、printf、println
  4. RM RMVB文件格式分析
  5. 大屏幕实时数据可视化解决方案?
  6. linux 下安装ecos开发环境,Linux(Fedora10)下建立ecos开发环境
  7. (BGV12)同态加密方案初学
  8. Github fow Windows 安装问题
  9. AD如何圆形布局led
  10. 计算机基础应用演示文稿,计算机基础及应用演示文稿.PPT