Git使用

 

 

1.git介绍:

git是一个分布式的版本控制器。使用的步骤 :官方网站下载安装包==》设置本地的用户名和邮箱地址(这里设置的名称以后不会跟远程仓库那个用户名不冲突,只是用来区分哪个人来提交的本地代码)。====》获取文件目录的工作权限==》提交到暂存区===》提交到本地库==》推送到远程仓库。

2.git常用命令

2.1 设置用户签名(本地)

git config user.name #查看当前用户名签名名称
git config user.email #查看当前用户名签名邮箱
#设置当前操作系统的用户签名
git config -global user.name xuserName 
git config -global user.emeal xuserName@163.com

2.2 初始化本地库

git init #进入到需要版本控制的工作目录使用命令 git init 初始化本地目录

2.3 查看状态

git status  #初始化好第一次仓库时查看当前状态 
On branch master  #当前工作的分支  master
​
No commits yet  #目前没有东西可以提交
​
nothing to commit (create/copy files and use "git add" to track) #没有可提交的文件
vim hello.txt #创建一个文件。再次查看时提提示有文件未被追踪
git status 
Untracked files: #文件没有被追踪
  (use "git add <file>..." to include in what will be committed)
        hello.txt #在控制台中是提示红色文件
 nothing added to commit but untracked files present (use "git add" to track)#除了存在未跟踪的文件外,没有添加任何内容以提交(使用“git add”跟踪)

2.4 添加到暂存区

git add hello.txt
warning: LF will be replaced by CRLF in hello.txt. #输出的日志信息为:在这个文件的末尾 RELF换行符替换成LF的换行符
The file will have its original line endings in your working directory 
#在次查看状态时 日志输出发生了改变
git status 
On branch master
No commits yet
Changes to be committed: #检测到一个文件发生了改变 
  (use "git rm --cached <file>..." to unstage) # 使用git rm --cached file可以删除暂存区的文件
        new file:   hello.txt
​

2.5 提交本地库

git commit -m "first commit" hello.txt #将暂存区中的文件提交到本地库中
warning: LF will be replaced by CRLF in hello.txt. #这是警告文件换行符发生了改变
The file will have its original line endings in your working directory
[master (root-commit) 6a44669] first commit #提交的版本信息 6a44669 这是这个版本的唯一识别号  
 1 file changed, 7 insertions(+)  #添加了一个文件到本地库中。并且插入了7行数据
 create mode 100644 hello.txt 
 #再次查看状态时
git status
On branch master 
                 #提交过一次本地仓库就没有了 no commits yet 的提示了
nothing to commit, working tree clean #提示没文件发生改变。此工作目录树是干净的
​
​

2.6 查看提交版本记录

git reflog #查看当前日志
6a44669 (HEAD -> master) HEAD@{0}: commit (initial): first commit #当前head的指针指向了master 带有版本信息、提交信息
Hopeful@HopefulPlus MINGW64 /e/git/git_demo01 (master)
$ git log  #查看版本的详细的日志信息
commit 6a44669f6dc5186cd8d9d174223a5d261a9243e6 (HEAD -> master)#唯一识别号
Author: Hopeful <827866012@qq.com> #当前用户名
Date:   Mon May 24 14:01:23 2021 +0800  #提交的时间
    first commit #提交信息
​

2.7一个文件添加到了本地库的时。这个文件发生了改变 查看这个状态的变化

 vim hello.txt 
 git status
On branch master
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        modified:   hello.txt #检查到一个被修改的文件
 #将修改的文件添加到暂存区
 git add hello.txt
warning: LF will be replaced by CRLF in hello.txt.
The file will have its original line endings in your working directory
​
Hopeful@HopefulPlus MINGW64 /e/git/git_demo01 (master)
git status
On branch master
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        modified:   hello.txt  #此时的文件从红色到了绿色文件
git commit -m"second commit" hello.txt #将修改的文件添加到本地仓库
warning: LF will be replaced by CRLF in hello.txt.
The file will have its original line endings in your working directory
[master bec2d05] second commit
 1 file changed, 1 insertion(+), 1 deletion(-) #一个文件发生了改变,一行数据被插入。一行数据被删除
#此时再查看版本信息时
git reflog #查看版本信息有两个版本提交记录
bec2d05 (HEAD -> master) HEAD@{0}: commit: second commit
6a44669 HEAD@{1}: commit (initial): first commit
​

2.8 版本回退 (通过hard指针改变来确定一个版本)

git reset --hard bec2d05 #回退版本信息
git reflog #查看版本信息
bec2d05 (HEAD -> master) HEAD@{0}: reset: moving to bec2d05 #最新指向的版本
6a44669 HEAD@{1}: reset: moving to 6a44669 
66aa9b2 HEAD@{2}: commit: third commint
bec2d05 (HEAD -> master) HEAD@{3}: commit: second commit #head指针的转变的方式
6a44669 HEAD@{4}: commit (initial): first commit
​

3.git 分支操作

3.1 常用分支操作命令

git branch 分支名 #创建分支
git branch -v #查看分支名
git checkout 分支名 #切换分支
git merge 分支名 # 把指定的分支合并到前分支上

3.2 分支操作

 git branch hot-branch #创建一个分支
 git branch -v #查看分支
  hot-branch bec2d05 second commit# 这里有两个分支了
  master     bec2d05 second commit
#切换分支
git checkout hot-branch #切换分支
Switched to branch 'hot-branch'

Hopeful@HopefulPlus MINGW64 /e/git/git_demo01 (hot-branch) #这里提示切换成功分支

#合并分支:合并时需要在主分支上合并被合并的分支 比如:想要在master上合并分支 就要切换到master分支上进行merge操作
Hopeful@HopefulPlus MINGW64 /e/git/git_demo01 (master) #当前分支
$ git merge hot-branch  #合并分支
Updating bec2d05..39c5a00
Fast-forward
 hello.txt | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)  #日志输出  1个文件发生改变 。2行插入2行删除
#分支合并代码冲突手动解决
 git merge hot-branch #合并代码
Auto-merging hello.txt
CONFLICT (content): Merge conflict in hello.txt#合并代码时,发生冲突在这个hello.txt的文件中
Automatic merge failed; fix conflicts and then commit the result. #自动合并中发生了代码冲突。不敢自动合并了
Hopeful@HopefulPlus MINGW64 /e/git/git_demo01 (master|MERGING) #merging 在master分支上合并中。并没有合并成功
#在代码冲突的时候在查看这个状态就
 git status 
On branch master
You have unmerged paths.
  (fix conflicts and run "git commit")
  (use "git merge --abort" to abort the merge)

Unmerged paths:
  (use "git add <file>..." to mark resolution)
        both modified:   hello.txt  #这里可以看到有两个分支对这个文件进行了修改

no changes added to commit (use "git add" and/or "git commit -a")

#手动合并代码
<<<<<<< HEAD   #当前分支修改开始
hello kusen hello git master
=======        #当前分支修改结束
hello kusen hello git hot-branch
>>>>>>> hot-branch #其他分支修改
hello kusen hello git
hello kusen hello git branch 333334444
hello kusen hello git
hello kusen hello git
hello kusen hello git
hello kusen hello git 2222223333333
#手动解决代码冲突时。需要在本分支上重新添加到暂存区 再提交到本地仓库 注意的是:这里提交的时候不需要添加文件名
Hopeful@HopefulPlus MINGW64 /e/git/git_demo01 (master|MERGING) #这里表示没有合并成功
$ git commit -m"merge test" #手动解决冲突时。需要提交的格式
[master 0187e09] merge test

Hopeful@HopefulPlus MINGW64 /e/git/git_demo01 (master)#这里表示已经合并成功了

4.git团队协做开发

#添加远程仓库地址 并且设置别名
git remote add git-demo https://gitee.com/hopefulplus/git_demo01.git
#查看当前远程仓库可以推送和拉去的别名
git remote -v
git-demo        https://gitee.com/hopefulplus/git_demo01.git (fetch)
git-demo        https://gitee.com/hopefulplus/git_demo01.git (push)

4.1将本地的代码推送到远程仓库

#如果远程仓库有文件夹了,那么需要将远程仓库的文件拉取到本地仓库中进行 然后在添加到本地仓库中。如果发生冲突就手动解决并添加到本地仓库中。
#先从远程仓库中拉取代码
git pull --rebase git-demo  master 
#在查看当前版本控制时,发生了错误
git status 
interactive rebase in progress; onto 796e78f #这里是错误信息 : 你当前正在编辑的提交将要覆盖在 796e78 commitid 上
#使用命令继续提交文件
git rebase --continue #继续代码的提交(推荐),执行之后
#提交到远程仓库
git push git-dome master

4.2 拉去远程仓库代码

git pull git-demo master #拉取远程仓库代码
remote: Enumerating objects: 5, done.
remote: Counting objects: 100% (5/5), done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 3 (delta 2), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), 330 bytes | 0 bytes/s, done.
From https://gitee.com/hopefulplus/git_demo01
 * branch            master     -> FETCH_HEAD
   7825090..97607aa  master     -> git-demo/master
Updating 7825090..97607aa
Fast-forward
 hello.txt | 1 +
 1 file changed, 1 insertion(+) #拉取成功 一个文件发生改变 一行插入

4.3 克隆代码

#克隆做了三件事情 1.拉取代码 2.初始化仓库 3.创建别名
git clone https://gitee.com/hopefulplus/git_demo01.git #需要拿到远程仓库地址才能克隆

4.4 跨团队合作

跨团队合作主要的过程:1.将项目的地址连接发送给对方。2.对方将仓库fork到自己的仓库中,3.在仓库上改代码,4.然后使用 pull requests 将修改好的代码推送到远程。

5.其他操作

#拉取文件时,忽略历史文件
git pull --allow-unrelated-histories master master #前一个master是远程仓库的路径地址起的别名。后一个master是本地厂库master
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值