参考链接 学习git链接

1,下载安装 git
2,开始菜单里找到“Git”->“Git Bash”,蹦出一个类似命令行窗口的东西,就说明Git安装成功
3,在命令行输入:
git config --global user.name “Your Name”
git config --global user.email “email@example.com”

4,创建一个文件 打开右击 找到 git bash here 点击打开
5,输入 git init (会在文件夹中 出现)
6,创建文件或其它内容 例如:readme.txt
7,git add readme.txt
8,git commit -m “add readme.txt” “” 为注释内容 方便以后查看
9, 修改 readme.txt 文件中的内容
10,git status 查看状态
11,git diff readme.txt 查看修改的内容
12,再次提交 git add readme.txt
13,查看修改历史
git log
git log --pretty=oneline
SHA1计算出来的一个非常大的数字,每个人不相同
14,版本回退 git reset --hard HEAD^
上一个版本就是HEAD,上上一个版本就是HEAD^,100个版本,写成HEAD~100。
15,回退之后,在回来。 指定回到未来的某个版本:git reset --hard 7896f
7896f版本号,版本号没必要写全,前几位就可以了,Git会自动去找

16,git reflog 用来记录你的每一次命令 可查找版本号

17,git checkout – file可以丢弃工作区的修改: file 文件名 git checkout – readme.txt

18,git reset HEAD 可以把暂存区的修改撤销掉 git reset HEAD readme.txt

19,rm file 删除文件 也可在资源管理器中 直接删除

20,从版本库中删除文件,那就用命令git rm file删掉,并且git commit -m “”

21, 撤销删除 git checkout – file 删掉在没有 git commit -m 之前可以用

远程仓库
1,第1步:创建SSH Key。在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有这两个文件:

id_rsa、id_rsa.pub,如果已经有了,可直接跳到下一步。如果没有,打开Shell(Windows下打开Git Bash),创

建SSH Key:$ ssh-keygen -t rsa -C “youremail@example.com”

2,然后一路回车,使用默认值即可

3,登录 github 没有注册 打开“settings”,“SSH Keys”页面:

4, 点“new SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容,点“Add ssh Key”,你就

应该看到已经添加的Key:

5,在github 新建一个仓库 点击 + 选择 new repo… 我新建的是 learngit.git

6.新建完成后 页面会出现 两个按钮 HTTPS SSH 点击SSH 会出现一个链接

git@github.com:xxxxxxxxxx/learngit.git

7,在本地的learngit仓库下运行命令 git remote add origin git@github.com:michaelliao/learngit.git
远程库的名字就是origin

8,把本地库的所有内容推送到远程库上:git push -u origin master
如果遇到类似报错ssh: connect to host github.com port 22: Connection refused fatal: Could not
说明协议被禁掉,只能换一种连接(https)进行合并本地仓库。
8.1 先查看当前远程仓库使用的那种协议连接 git remote -v
8.2 移除掉远程仓库的配置 git remote rm origin
8.3 git remote add origin https://github.com/xxxxxxxxxx/learngit.git
https的地址其实就是github上项目对应的地址
8.4 再次查看 git remote -v
8.5 推送 git push -u origin master 可能会出现登录 弹框 登录就好

9,出现这种 说明成功 打开GitHub 看到有 本地仓库的文件 就成功了
$ git push -u origin master
Enumerating objects: 3, done.
Counting objects: 100% (3/3), done.
Writing objects: 100% (3/3), 227 bytes | 227.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
To https://github.com/xxxxxxxxxx/learngit.git

  • [new branch] master -> master
    Branch ‘master’ set up to track remote branch ‘master’ from ‘origin’.

SSH警告
当你第一次使用Git的clone或者push命令连接GitHub时,会得到一个警告:

The authenticity of host ‘github.com (xx.xx.xx.xx)’ can’t be established.
RSA key fingerprint is xx.xx.xx.xx.xx.
Are you sure you want to continue connecting (yes/no)?
这是因为Git使用SSH连接,而SSH连接在第一次验证GitHub服务器的Key时,需要你确认GitHub的Key的指纹信息是否

真的来自GitHub的服务器,输入yes回车即可。

Git会输出一个警告,告诉你已经把GitHub的Key添加到本机的一个信任列表里了:

Warning: Permanently added ‘github.com’ (RSA) to the list of known hosts.
这个警告只会出现一次,后面的操作就不会有任何警告了。

如果你实在担心有人冒充GitHub服务器,输入yes前可以对照GitHub的RSA Key的指纹信息是否与SSH连接给出的一致

从远程库克隆
1登陆GitHub,创建一个新的仓库,名字叫gittest
2我们勾选Initialize this repository with a README。创建完毕后,可以看到README.md文件
3在桌面右击打开 git bash here 用命令git clone克隆一个本地库 git clone

git@github.com:xxxxxxxxxx/gittest.git
如果被拒 请用 HTTPS 克隆
git clone https://github.com/zhangzhen96/gittest.git
4 可查看桌面是否有文件夹 gittest 里面是否有文件 READNE.git 有说明成功

分支管理
一,创建与合并分支
1,找一个项目文件 打开git bash here 我们创建dev分支,然后切换到dev分支
git checkout -b dev
git checkout命令加上-b参数表示创建并切换,相当于以下两条命令:
git branch dev
git checkout dev
2,查看当前分支 git branch 会列出所有分支,当前分支前面会标一个
出现
dev
master
3,已切换 dev 分支 可修改添加内容 并提交

4,切换回master分支 git checkout master
之前修改或添加的内容 就消失的
5,把dev分支的工作成果合并到master分支
git merge dev
git merge命令用于合并指定分支到当前分支

6,可删除 dev 分支 git branch -d dev

7,git branch 查看分支 只剩master了

附加:最新版本的Git提供了新的git switch命令来切换分支
git switch -c dev 创建新的
git switch master 直接切换到已有的master分支

二,解决冲突
1,先创建一个分支 git checkout -b aaa
2,选择这个分支 git switch -c aaa
3,修改项目中的 文件 内容 以最后一行为例 随便修改 保存
4,提交 git add xxxx.xxx 文件名.格式
5, git commit -m “xxxxxxx”
6, 切换到 master 分支
7, 重复 上面 3-5步骤 两次修改内容要不一样
8,合并 git merge aaa
出现报错
Auto-merging xxxx.xxx
CONFLICT (content): Merge conflict in xxxx.xxx
Automatic merge failed; fix conflicts and then commit the result.
9,git status 查看冲突的文件
10,查看修改的文件 Git用<<<<<<<,=======,>>>>>>>标记出不同分支的内容
11,手动修改文件你想要的内容在提交 就可以了
12,git log --graph --pretty=oneline --abbrev-commit 可以看到分支的合并情况
13, 最后删除分支 aaa git branch -d aaa

三,分支管理策略
1,第二种合并分支的方法(推荐)
2,通常,合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息。

 如果要强制禁用Fast forward模式,Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看   

出分支信息。
3,创建分支并切换
git checkout -b dev git switch -c dev
4, 修改文件 并提交 git add readme.txt git commit -m “add merge”
5,切换回 master 分支并合并 --no-ff参数,表示禁用Fast forward
git switch master git merge --no-ff -m “merge with no-ff” dev

6, 在实际开发中,我们应该按照几个基本原则进行分支管理:

  首先,master分支应该是非常稳定的,也就是仅用来发布新版本,平时不能在上面干活;

  那在哪干活呢?干活都在dev分支上,也就是说,dev分支是不稳定的,到某个时候,比如1.0版本发布时,再 

 把dev分支合并到master上,在master分支发布1.0版本;

  你和你的小伙伴们每个人都在dev分支上干活,每个人都有自己的分支,时不时地往dev分支上合并就可以了

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐