git入门学习

git学习

  • git入门学习
    • git是什么
    • 如何让git帮我们管理文件
    • 把本地仓储上传到github
    • github pull requests

git入门学习

本文简单介绍了git的常用命令,上传到github仓储的方法。是一个git入门的教程,希望各位老师,大神帮忙纠正文中的错误,谢谢

git是什么

git是版本控制工具,可以管理任何文件,不只是程序员可以用。
git管理的状态有三个区 ,工作区,暂存区和版本库
工作区就是我们正在修改操作的本地文件
暂存区 是(git add .)后,等待提交到版本库
版本库 是(git commit)后,提交到版本库,别人可以merge 你的代码了

如何让git帮我们管理文件

安装git的步骤这里就不介绍了

  1. 首先我们新建一个文件夹 gitdemo,我的命令都是在powershell中执行的,也可以在 bash
  2. 输入命令 git init 将这个文件夹交给git 管理,执行命令后,gitdemo中会创建一个 .git 文件夹

git init

PS E:\Practice\gitdemo> git init
  1. 新建一个readme.md

new-item readme.md

PS E:\Practice\gitdemo> new-item readme.md


    目录: E:\Practice\gitdemo


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----         2019/3/6     19:43              0 readme.md

.4. 在readme中编辑内容 ,输入git status,用于查看当前版本状态

git status

PS E:\Practice\gitdemo> git status
On branch master
Changes to be committed:
  (use "git reset HEAD ..." to unstage)

        deleted:    readme.md

Untracked files:
  (use "git add ..." to include in what will be committed)

        readme.md

结果告诉我们
当前处在master分支
有没有提交的文件,通过git reset HEAD …恢复上个版本,或者git add …把文件提交到暂存区,交给git管理,接下来可以提交

  1. 查看变更内容

git diff

PS E:\Practice\gitdemo> git diff
diff --git a/readme.md b/readme.md
index e69de29..b90af49 100644
--- a/readme.md
+++ b/readme.md
@@ -0,0 +1 @@
+哎呦 不错哦
\ No newline at end of file
  1. git add . 把当前所有不再暂存区的文件添加到暂存区 ,git add readme.md只提交 readme.md文件

git add .

PS E:\Practice\gitdemo> git add readme.md
  1. git status查看状态

git status

PS E:\Practice\gitdemo> git status
On branch master
Changes to be committed:
  (use "git reset HEAD ..." to unstage)

        modified:   readme.md
  1. git commit - m ’ commit readme.md ’ 提交到仓储 -m 后面是对提交版本的一个说明

git commit -m ’ commit readme.md’

PS E:\Practice\gitdemo> git commit -m ' commit readme.md'
[master fb602a6]  commit readme.md
 1 file changed, 1 insertion(+)
  1. git branch 查看分支

git branch

PS E:\Practice\gitdemo> git branch
* master

10.git 推荐我们不再master分支上修改,可以创建分支,修改后再 merge 到master 分支,效果是一样的。
接下来我们在用dev分支上修改文件
创建 并切换分支 git checkout -b dev

git checkout -b dev

git branch dev 创建分支
git checkout dev 切换分支

PS E:\Practice\gitdemo> git checkout -b dev
Switched to a new branch 'dev'
  1. 我们在dev 分支下 修改 readme.md文件 新增一行时间戳 dev 3/7/2019 7:20:47 PM
    git diff查看一下修改的内容

git diff

PS E:\Practice\gitdemo> git diff
diff --git a/readme.md b/readme.md
index b90af49..4c72278 100644
--- a/readme.md
+++ b/readme.md
@@ -1 +1,2 @@
-哎呦 不错哦
\ No newline at end of file
+哎呦 不错哦^M
+dev 3/7/2019 7:20:47 PM
\ No newline at end of file
  1. gitt add . ,git commit -m ‘dev commit’ 提交仓储

git add .
git commit -m ‘dev commit’

  1. 切换到master分支,在master分支下 查看readme.md文件 还是以前的版本,并不是dev修改后的
    我们需要融合 dev 分支提交的版本

git checkout master
git merge dev

PS E:\Practice\gitdemo> git merge dev
Updating 137e798..7d5b5a0
Fast-forward
 readme.md | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
  1. 我们成功的在master分支下融合dev分支的内容
    但是我们 工作的时候很多情况下有可能 多个人共同修改一个文件,这时候可能会出现文件的冲突
    我们来尝试一下,在master分支和dev分支中同时修改readme.md文件

master readme.md

哎呦 不错哦
dev 3/7/2019 7:20:47 PM
master 3/7/2019 7:35:48 PM 

dev readme.md

哎呦 不错哦
dev 3/7/2019 7:20:47 PM 
dev 3/7/2019 7:37:58 PM 
  1. 在切换到master merge 的时候,会出现merge 冲突的问题,自动merge失败,让我们手动修改然后再commit
PS E:\Practice\gitdemo> git merge dev
Auto-merging readme.md
CONFLICT (content): Merge conflict in readme.md
Automatic merge failed; fix conflicts and then commit the result.

查看一下readme.md内容,冲突部分被用符号标记出来

哎呦 不错哦
dev 3/7/2019 7:20:47 PM
<<<<<<< HEAD
master 3/7/2019 7:35:48 PM
=======
dev 3/7/2019 7:37:58 PM
>>>>>>> dev

这部分是当前版本的内容

<<<<<<< HEAD
master 3/7/2019 7:35:48 PM
=======

这部分要融合 dev版本中的内容

=======
dev 3/7/2019 7:37:58 PM
>>>>>>> dev
  1. 我们手动修改有冲突的地方,然后提交到仓库就好完成了,然后再把dev分支删掉

git add .
git commit
git branch -d dev

PS E:\Practice\gitdemo> git branch -d dev
Deleted branch dev (was 2f8bc75).

把本地仓储上传到github

  1. 在github上新建一个angular hero tutorial的仓储
    git入门学习_第1张图片
    因为我们选择的是MIT lisence,所以创建后会有个lisence文件
    git入门学习_第2张图片
  2. 复制github上仓储的地址 执行下面的命令,命令的https部分就是github仓储地址

git remote add origin https://github.com/xxxxxxxx

我们就成功的创建了一个叫origin的远程仓储,如果是自己的仓储,一般都命名为origin

git remote 查看一下远程仓储

PS E:\Practice\hero> git remote
origin
  1. 远程仓储创建完成,我们现在把本地仓储push去

git push origin master

这期间会出现一些问题,但是由于我是提交后写的文档,所以这一部分做完就不能重现了。大概的问题就是,仓储中有一个本地没有的lisence,需要git pull更新一下本地代码。远程仓储和本地仓储的历史不一样,git pull origin master --allow-unrelated-histories忽略历史。

git pull
git pull origin master --allow-unrelated-histories

所有问题都解决后,在git push就成功啦。

git push origin master

PS E:\Practice\hero>  git push origin master
Username for 'https://github.com': jsong93
Password for 'https://[email protected]':
Counting objects: 86, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (82/82), done.
Writing objects: 100% (86/86), 213.85 KiB | 0 bytes/s, done.
Total 86 (delta 10), reused 0 (delta 0)
remote: Resolving deltas: 100% (10/10), done.
To https://github.com/jsong93/angular-hero.git
   460c81f..6d4544f  master -> master

github pull requests

如果我们在github上fork别人的代码,修改后怎么提交呢
首先clone我们本地仓储fork的代码
然后我们在本地创建一个分支,也可以直接用master

git checkout -b pullrequests

完成代码修改后

git add .
git commit -m ‘pull requests test’

提交到我们的远程仓储

git push origin master

在自己仓储中,点击pull requests,然后点击 new pull request
git入门学习_第3张图片
然后就进到了这个页面了,点击create pull request
git入门学习_第4张图片
录入调教代码的说明,点击create pull request就成功啦,接下来就原来代码的管理master考虑是不是要merge代码啦
git入门学习_第5张图片
如果有问题欢迎大家帮我修正,谢谢

回退上一个版本

git reset --hard head~1

删除版本文件,但是保留本地文件

git rm -r --cached [filename]

你可能感兴趣的:(学习总结)