您的位置:首页 > 其它

git命令的日常使用及注意事项

2019-03-05 15:12 211 查看
后台有小伙伴留言需要分享一下git的使用流程,刚好自己也想记录一下使用操作,毕竟每个人都对相同的知识有自己的理解。这里给大家分享一些我的关于git使用的相关知识点,这里只分享一些经常使用的的操作(反对大量重复造轮子),其它具体的git使用信息和注意事项、背景信息大家可以去网上查找。我也会在文章末尾给出一些参考链接,是学习git比较好的文章。

Git操作四步曲

  • 创建一个云端版本库(使用国内的码云,github太慢了,命令完全是一样的)

    在码云上创建一个远程版本库, 如下图
  • 复制这个仓库的地址(比如:https://gitee.com/Sun_ME/git-test.git)
  • 在自己电脑上创建一个本地版本库

      在任意地方创建一个文件夹,比如(‪C:\Users\pc\Desktop\git)

    • 使用visual studio code(对vscode使用不熟练的使用cmd或者powershell也可以)打开这个目录,进入终端窗口

    • 要使用git首先当然需要配置一下git了,执行gitconfig命令配置相关用户信息

      git config --global user.name "你的名字或昵称"
      git config --global user.email "你的邮箱"
    • 使用以下命令将这个文件夹作为版本控制的目录

      这个命令会在当前目录创建一个.git的文件夹
    git init
  • 到这里本地的版本库就已经创建完成了。

  • 将本地版本库与云端的版本库关联起来

      在终端中输入以下命令,将远端和本地关联
    git remote add origin https://gitee.com/Sun_ME/git-test.git
    • 注意这个时候我们的远程版本库和本地版本库的内容是不一样的,远程版本库里有两个readme文件,而本地版本库什么东西都没有,这里的区别很重要(后面会说明)。现在我们在本地创建一个local_txt.txt文件,并在文本中添加文本内容如下:Hello Git。假设我们要对这个文本文件进行版本控制。我们需要执行以下几个命令: 将需要跟踪的文件添加到暂存区(任选其中一个命令即可)
    git add .  #将当前目录下所有的文件添加到暂存区
    git add local_txt.txt #将local_txt.txt 添加到暂存区
    • 将暂存区的文件添加到存储库
    git commit -m "保存" # -m后面的字符串为此次提交的说明,随意填写
    • 到这里这个local_txt.txt文件已经添加到我们的本地版本控制仓库中了
  • 将本地版本库推送到远程仓库中

      很多童鞋可能会想直接使用命令将本地仓库推到远端中不就完了,其实没错,但是,注意我之前说过的,现在本地仓库和远程仓库的内容是不一样的。我们可以试着推一下,使用命令:git push origin master推送本地版本库到远端。控制台报错如下
      ! [rejected]        master -> master (fetch first)
      error: failed to push some refs to 'https://gitee.com/Sun_ME/git-test.git'
      hint: Updates were rejected because the remote contains work that you do
      hint: not have locally. This is usually caused by another repository pushing
      hint: to the same ref. You may want to first integrate the remote changes
      hint: (e.g., 'git pull ...') before pushing again.
      hint: See the 'Note about fast-forwards' in 'git push --help' for details.
    • 那么这是什么原因呢,就是我们的远程版本库和本地内容不一致,头指向不一致; 那么需要先将远程仓库的内容拉取到本地,使用如下命令
    git pull origin master
    这时候我们的目录中就多了如下几个文件
    GIT
    .gitgnore //这个文件作为配置文件,会忽略一些指定的不需要被版本控制的目录或文件,可以从网络上下载指定项目的模板
    local_txt.txt
    README.en.md
    README.md
    • 现在我们可以使用以下命令将本地版本库推送到远端版本库中了
    git push origin master
    • 查看远程版本库,发现内容和本地版本库一样了。到这里你已经学会了版本库的创建、暂存、提交、存储、拉取、推送了。
  • 多人协作使用git

      假设现在有一个仓库,还用上面那个仓库作为说明。暂且将自己称为A,现在来了一个B同事,要和你一起在这个仓库中工作,你们两个需要协同开发。 B同事将云端的版本库通过命令克隆到了自己电脑上:
    git clone https://gitee.com/Sun_ME/git-test.git
    • A也将这个版本库克隆到了自己的电脑上。
    • B同事在自己电脑上打开local_txt.txt 文件,并把内容修改为了:Hello Superman
    • A同事也在自己电脑上打开了local_txt.txt文件,并把内容修改为了:Hello 灭霸
    • B同事按照上面的操作流程: 使用如下命令将这个文件添加到暂存区:
    git add local_txt.txt
    • 将这个文件提交到本地仓库中
    git commit -m "B同事修改为Hello Superman"
    • 将本地本库推送到远程仓库
    git push origin master
  • A也完成了自己的任务,需要将自己修改的内容提交到原创仓库
      A按照上面的流程操作一遍。一定动手操作一遍。这个时候你会发现并不能成功推送,报了之前报过的一个错误。你一定回想到,我们本地仓库内容和远程不一样,我需要从远端拉取一下,再推送就可以了。没错,先这样尝试一样。 使用以下命令从拉取远端版本库的内容
    git pull origin master
  • 好了,我们成功拉取了远程版本库的内容。但是注意一个问题,B同事修改local_txt.txt文件内容为:Hello Super。而你A修改local_txt.txt内容为:Hello 灭霸。这个时候,git就懵逼了(需要手动合并差异),你们两个修改的都是同一个文件,我到最后需要保留的文件内容是什么,是保留为:Hello Superman还是Hello 灭霸,这个时候,你需要和B同事商量,一致决定,内容保留为:Hello 码码小虫。使用git commit -m ""提交更改(这就涉及到了变基,此,参考其它文章),一般在做开发的时候,会划分为模块,每个人负责不同的模块,遇到冲突情况比较少。A和B都修改本地的local_txt.txt内容为Hello 码码小虫。再次按照上面流程将本地版本库提交到远程。命令如下
  • git push --set-upstream origin master
    • 涉及到这里还是有点复杂,读着可以多尝试几次,理解这个工作流程,多熟练几次都大致就能明白是怎样一回事了。

    一些Git常用的命令集:

    $ mkdir ***					创建***文件夹
    
    $ pwd						查看当前URL
    
    $ ls -ah 					查看该目录集文件
    
    $ git init					在当前目录下创建Git仓库
    
    $ git add ***				将***提交到暂存区
    
    $ git commit -m	"****"		从暂存区提交到当前分支 并为本次提交增加介绍****内容
    [我们创建Git版本库时,Git自动为我们创建了唯一一个master分支,
    所以,现在,git commit就是往master分支上提交更改。]
    
    $ ssh-keygen -t rsa -C "youremail@example.com"	创建SSH Key
    
    $ git status 				了解仓库当前的状态
    
    $ git diff					看具体修改了什么内容
    
    $ git log					显示从最近到最远的提交日志
    
    $ git reset --hard head^		回退到上一(*^)版本(^可多个)
    
    $ git reset --hard ****		回退到版本****
    
    $
    3ff7
    git checkout -- ***		将***的暂存区内容清除
    
    $ git reset head ***			退回到最新版本--即上一版本
    
    $ git remote add origin *****	绑定远程仓库
    
    $ git push -u origin master	首次将本地库上传到远程GitHub仓中
    
    $ git clone ****	克隆一个本地库
    
    git push origin master		非首次推送最新修改可省略 -u
    
    $ git remote rm origin		移除远程仓库的绑定
    
    $ git checkout -b ***		转换到一个分支***如果没有就创建一个新的
    [	git checkout 命令加上 -b 参数表示创建并切换,相当于以下两条命令:
    $ git branch ***		//创建一个 *** 分支
    $ git checkout ***		//转换到 *** 分支
    Switched to branch '***']
    
    $ git branch					命令会列出所有分支,当前分支前面会标一个 * 号
    
    $ git merge ***				合并某分支到***分支
    
    $ git branch -d ***			删除***分支

    参考文章:

    更多内容,欢迎关注访问


    )

    内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
    标签: