GitHub——Learning!!!GOGOGO

Git与远程仓库
git remote -v 查看当前所有远程地址别名
git remove add[别名][远程地址]
推送 git push [别名][分支名]
克隆Git clone 远程地址//git clone 远程地址别名
拉取 pull=fetch+merge 
     git fetch [远程库地址别名] [过程分支]
     Git merge [远程库地址别名/远程分支]
     git pull [远程库地址别名][远程分支]
团队成员邀请
解决冲突:
    要点:1、如果不是基于GitHub远程库的最下版本所做的修改,不能推送,必须先拉取。
          2、拉取下来后如果进入冲突状态,则按照“分支冲突解决”操作解决即可。
跨团队协作:先folk 然后本地修改推到远程,pull request,审核代码,将远程库修改拉取到本地
SSH登录:
进入当前用户的家目录
$ cd ~
 删除.ssh 目录
$ rm -rvf .ssh
 运行命令生成.ssh 密钥目录
$ ssh-keygen -t rsa -C [email protected]
[ 注意:这里-C  这个参数是大写的 C]

 进入.ssh 目录查看文件列表
$ cd .ssh
$ ls -lF

查看 id_rsa.pub 文件内容
$ cat id_rsa.pub

 复制 id_rsa.pub 文件内容,登录 GitHub,点击用户头像→Settings→SSH and GPG
keys
 New SSH Key

 输入复制的密钥信息
 回到 Git bash 创建远程地址别名
git remote add origin_ssh [email protected]:atguigu2018ybuq/huashan.git
 推送文件进行测试


Eclipse中使用GIT
Eclipse特定文件
都是eclipse为了管理工程而维护的文件,和开发的代码没有直接的关系,最好不要在Git中进行追踪,而是将其忽略
.classpath文件,.project 文件,.settings 目录下所有文件
同一个团队中很难保证大家使用相同的IDE工具,而IDE工具不同时,相关工程特定文件就有可能不同,如果这些文件加入版本控制,会需要为这些文件解决冲突。

Git工作流:在项目开发过程中使用Git的方式
1、  集中式工作流
像 SVN 一样,集中式工作流以中央仓库作为项目所有修改的单点实体。所有
修改都提交到 Master 这个分支上。
这种方式与 SVN 的主要区别就是开发人员有本地库。Git 很多特性并没有用到。
2、 GitFlow  工作流
Gitflow 工作流通过为功能开发、发布准备和维护设立了独立的分支,让发布
迭代过程更流畅。严格的分支模型也为大型项目提供了一些非常必要的结构。
   主干分支 master:主要负责管理正在运行的生产环境代码。永远保持与正在运行的生产环境
完全一致。
 开发分支 develop:主要负责管理正在开发过程中的代码。一般情况下应该是最新的代码。
 bug 修理分支 hotfix:主要负责管理生产环境下出现的紧急修复的代码。 从主干分支分出,修
理完毕并测试上线后,并回主干分支。并回后,视情况可以删除该分支。
 准生产分支(预发布分支) release:较大的版本上线前,会从开发分支中分出准生产分支,进行最后阶段的集
成测试。该版本上线后,会合并到主干分支。生产环境运行一段阶段较稳定后
可以视情况删除。
 功能分支 feature:为了不影响较短周期的开发工作,一般把中长期开发模块,会从开发分支
中独立出来。 开发完成后会合并到开发分支。
3、Forking  工作流
Forking 工作流是在 GitFlow 基础上,充分利用了 Git 的 Fork 和 pull request 的
功能以达到代码审核的目的。更适合安全可靠地管理大团队的开发者,而且能接受
不信任贡献者的提交。

Gitlab服务器搭建:搭建一个局域网的服务器来模仿远程仓库

具体代码学习:

GOD@GNR MINGW64 /d/git_learn/second
$ git init
Initialized empty Git repository in D:/git_learn/second/.git/

GOD@GNR MINGW64 /d/git_learn/second (master)
$ git status
On branch master

Initial commit

nothing to commit (create/copy files and use "git add" to track)

GOD@GNR MINGW64 /d/git_learn/second (master)
$ vim second.txt

GOD@GNR MINGW64 /d/git_learn/second (master)
$ git add second.txt

GOD@GNR MINGW64 /d/git_learn/second (master)
$ git commit second.txt
[master (root-commit) 49c2e1b] second space  first file
 1 file changed, 1 insertion(+)
 create mode 100644 second.txt

GOD@GNR MINGW64 /d/git_learn/second (master)
$ git status
On branch master
nothing to commit, working tree clean

GOD@GNR MINGW64 /d/git_learn/second (master)
$ git reflog
49c2e1b HEAD@{0}: commit (initial): second space first file


GOD@GNR MINGW64 /d/git_learn/second (master)
$ git remote -v

GOD@GNR MINGW64 /d/git_learn/second (master)
$ git remote add origin https://github.com/wozhendeshuai/second.git

GOD@GNR MINGW64 /d/git_learn/second (master)
$ git remote -v
origin  https://github.com/wozhendeshuai/second.git (fetch)
origin  https://github.com/wozhendeshuai/second.git (push)

GOD@GNR MINGW64 /d/git_learn/second (master)
$ git push origin master
Username for 'https://github.com': [email protected]
libpng warning: iCCP: cHRM chunk does not match sRGB
libpng warning: iCCP: cHRM chunk does not match sRGB
Counting objects: 3, done.
Writing objects: 100% (3/3), 238 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To https://github.com/wozhendeshuai/second.git
 * [new branch]      master -> master

GOD@GNR MINGW64 /d/git_learn/second (master)
$ ll
total 1
-rw-r--r-- 1 GOD 197609 22 3月   8 08:43 second.txt

GOD@GNR MINGW64 /d/git_learn/second (master)
$ cd ..

GOD@GNR MINGW64 /d/git_learn
$ mkdir second_jjyu

GOD@GNR MINGW64 /d/git_learn
$ git clone https://github.com/wozhendeshuai/second.git
fatal: destination path 'second' already exists and is not an empty directory.

GOD@GNR MINGW64 /d/git_learn
$ cd second_jjyu

GOD@GNR MINGW64 /d/git_learn/second_jjyu
$ git clone https://github.com/wozhendeshuai/second.git
Cloning into 'second'...
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Total 3 (delta 0), reused 3 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), done.

GOD@GNR MINGW64 /d/git_learn/second_jjyu
$ ll
total 0
drwxr-xr-x 1 GOD 197609 0 3月   8 08:58 second/

GOD@GNR MINGW64 /d/git_learn/second_jjyu
$ ls
second/

GOD@GNR MINGW64 /d/git_learn/second_jjyu
$ cd secong
bash: cd: secong: No such file or directory

GOD@GNR MINGW64 /d/git_learn/second_jjyu
$ cd second

GOD@GNR MINGW64 /d/git_learn/second_jjyu/second (master)
$ git remote -v
origin  https://github.com/wozhendeshuai/second.git (fetch)
origin  https://github.com/wozhendeshuai/second.git (push)

GOD@GNR MINGW64 /d/git_learn/second_jjyu/second (master)
$ vim second.txt

GOD@GNR MINGW64 /d/git_learn/second_jjyu/second (master)
$ git add second.txt

GOD@GNR MINGW64 /d/git_learn/second_jjyu/second (master)
$ git commit second.txt
[master ea0660c] second people join
 1 file changed, 2 insertions(+), 1 deletion(-)

GOD@GNR MINGW64 /d/git_learn/second_jjyu/second (master)
$ git status
On branch master
Your branch is ahead of 'origin/master' by 1 commit.
  (use "git push" to publish your local commits)
nothing to commit, working tree clean

GOD@GNR MINGW64 /d/git_learn/second_jjyu/second (master)
$ cat second.txt
我真的帅到喷
汁

GOD@GNR MINGW64 /d/git_learn/second_jjyu/second (master)
$ git push second.txt
fatal: Invalid gitfile format: second.txt
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

GOD@GNR MINGW64 /d/git_learn/second_jjyu/second (master)
$ git push origin second.txt
error: src refspec second.txt does not match any.
error: failed to push some refs to 'https://github.com/wozhendeshuai/second.git'

GOD@GNR MINGW64 /d/git_learn/second_jjyu/second (master)
$ git push origin second
error: src refspec second does not match any.
error: failed to push some refs to 'https://github.com/wozhendeshuai/second.git'

GOD@GNR MINGW64 /d/git_learn/second_jjyu/second (master)
$ git push origin master
Username for 'https://github.com': [email protected]
libpng warning: iCCP: cHRM chunk does not match sRGB
libpng warning: iCCP: cHRM chunk does not match sRGB
Counting objects: 3, done.
Writing objects: 100% (3/3), 266 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To https://github.com/wozhendeshuai/second.git
   49c2e1b..ea0660c  master -> master

GOD@GNR MINGW64 /d/git_learn/second_jjyu/second (master)
$ cd ..

GOD@GNR MINGW64 /d/git_learn/second_jjyu
$ cd ..

GOD@GNR MINGW64 /d/git_learn
$ dir
second  second_jjyu  WeChat


GOD@GNR MINGW64 /d/git_learn
$

GOD@GNR MINGW64 /d/git_learn
$ cd second

GOD@GNR MINGW64 /d/git_learn/second (master)
$ cat second.txt
我真的帅到喷汁

GOD@GNR MINGW64 /d/git_learn/second (master)
$ git fetch origin master
remote: Enumerating objects: 5, done.
remote: Counting objects: 100% (5/5), done.
remote: Total 3 (delta 0), reused 3 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), done.
From https://github.com/wozhendeshuai/second
 * branch            master     -> FETCH_HEAD
   49c2e1b..ea0660c  master     -> origin/master

GOD@GNR MINGW64 /d/git_learn/second (master)
$ cat second.txt
我真的帅到喷汁

GOD@GNR MINGW64 /d/git_learn/second (master)
$ git checkout origin/master
Note: checking out 'origin/master'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b <new-branch-name>

HEAD is now at ea0660c... second people join

GOD@GNR MINGW64 /d/git_learn/second ((ea0660c...))
$ cat second.txt
我真的帅到喷
汁

GOD@GNR MINGW64 /d/git_learn/second ((ea0660c...))
$ git checkout

GOD@GNR MINGW64 /d/git_learn/second ((ea0660c...))
$ git checkout master
Previous HEAD position was ea0660c... second people join
Switched to branch 'master'

GOD@GNR MINGW64 /d/git_learn/second (master)
$ git merge origin/master
Updating 49c2e1b..ea0660c
Fast-forward
 second.txt | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

GOD@GNR MINGW64 /d/git_learn/second (master)
$ git status
On branch master
nothing to commit, working tree clean

GOD@GNR MINGW64 /d/git_learn/second (master)
$ cat second.txt
我真的帅到喷
汁

GOD@GNR MINGW64 /d/git_learn/second (master)
$ cd ../second_jjyu

GOD@GNR MINGW64 /d/git_learn/second_jjyu
$ cd second

GOD@GNR MINGW64 /d/git_learn/second_jjyu/second (master)
$ vim second.txt

GOD@GNR MINGW64 /d/git_learn/second_jjyu/second (master)
$ git commit -m "test pull" second.txt
[master c109a1a] test pull
 1 file changed, 1 insertion(+)

GOD@GNR MINGW64 /d/git_learn/second_jjyu/second (master)
$ git status
On branch master
Your branch is ahead of 'origin/master' by 1 commit.
  (use "git push" to publish your local commits)
nothing to commit, working tree clean

GOD@GNR MINGW64 /d/git_learn/second_jjyu/second (master)
$ git push origin master
Username for 'https://github.com': [email protected]
libpng warning: iCCP: cHRM chunk does not match sRGB
libpng warning: iCCP: cHRM chunk does not match sRGB
Counting objects: 3, done.
Writing objects: 100% (3/3), 271 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To https://github.com/wozhendeshuai/second.git
   ea0660c..c109a1a  master -> master

GOD@GNR MINGW64 /d/git_learn/second_jjyu/second (master)
$ cd ../../second

GOD@GNR MINGW64 /d/git_learn/second (master)
$ cat second.txt
我真的帅到喷
汁

GOD@GNR MINGW64 /d/git_learn/second (master)
$ git pull origin master
remote: Enumerating objects: 5, done.
remote: Counting objects: 100% (5/5), done.
remote: Total 3 (delta 0), reused 3 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), done.
From https://github.com/wozhendeshuai/second
 * branch            master     -> FETCH_HEAD
   ea0660c..c109a1a  master     -> origin/master
Updating ea0660c..c109a1a
Fast-forward
 second.txt | 1 +
 1 file changed, 1 insertion(+)

GOD@GNR MINGW64 /d/git_learn/second (master)
$ cat second.txt
我真的帅到喷
什么?呢
汁


发布了48 篇原创文章 · 获赞 9 · 访问量 2404

猜你喜欢

转载自blog.csdn.net/jjy19971023/article/details/104730459