git add 所有修改文件_Git的安装及创建版本库

a8c427abe1e7e6a9086ff46e972cfa90.png

在Windows平台安装Git

fewff msysgit是Windows版的Git,下载链接:https://git-for-windows.github.io/。下载完成后,按照默认的配置,一路next,即可安装完成。

在Mac平台安装Git

如果你正在使用Mac做开发,有两种安装Git的方法。

一是安装homebrew,然后通过homebrew安装Git,具体方法请参考homebrew的文档:http://brew.sh/。

第二种方法更简单,也是推荐的方法,就是直接从AppStore安装Xcode,Xcode集成了Git,不过默认没有安装,你需要运行Xcode,选择菜单“Xcode”->“Preferences”,在弹出窗口中找到“Downloads”,选择“Command Line Tools”,点“Install”就可以完成安装了。

PS:新版的Xcode(v8.1)自带了“Command Line Tools”工具。

2a34af79021a46e883e314215670c30e.png

在终端输入git --version可以查看git的安装版本:

$ git --versiongit version 2.9.3 (Apple Git-75)

在Linux平台安装Git

81b1c244fdf6fbaa9f933bf01c80692a.png

首先,可以试着输入git,看看系统有没有安装Git:

$ gitThe program 'git' is currently not installed. You can install it by typing:sudo apt-get install git

如果用Debian或Ubuntu Linux,通过一条命令即可完成安装:

sudo apt-get install git

如果是其他Linux版本,可以直接通过源码安装。先从Git官网下载源码,然后解压,依次输入如下命令即可:

./configmakesudo make install

配置用户信息

# 设置提交代码时的用户信息$ git config --global user.name "Your Name"$ git config --global user.email "email@example.com"# 显示当前的Git配置$ git config --list

如果用的是TortoiseGit,也可以在Settings-->Git-->User Info下,直接填写name和Email。

Git的配置文件为.gitconfig,它可以在用户主目录下(全局配置:C:甥敳獲ame.gitconfig),也可以在项目目录下(项目配置)。

某个Git命令如何得到详细的帮助:

比如我想知道config命令的详细介绍,那么我可以输入:

git help config

创建本地版本库并提交文件

创建本地版本库

$ mkdir mysite  //创建一个名为mysite的目录$ cd mysite //进入mysite的目录# 在当前目录下创建版本库$ git init   Initialized empty Git repository in e:/codes/mysite/.git/## 下载一个项目和它的整个代码历史git clone [url]

整个mysite文件夹称之为工作区。最后生成的.git文件夹就是版本库

代码提交

  • git add:把文件修改添加到暂存区。
  • git commit:把暂存区的所有修改提交到本地版本库(提交到当前分支)。

1、git add的使用如下:

$ git add .  //添加当前目录下的所有文件$ git add readme.txt  //添加指定文件$ git add src/   //添加指定目录(含子目录)$ git add src/*.txt    //添加src目录下的所有txt文件

PS:可以使用git status查看状态。

2、git commit的使用如下:

提交暂存区到本地仓库区:(用得最多)

$ git commit -m "一些说明"

使用一次新的commit,替代上一次提交:(如果代码没有任何新变化,则用来改写上一次commit的提交信息)

$ git commit --amend -m "一些说明"

重做上一次commit,并包括指定文件的新变化:(相当于是在上一次commit中追加一些新的文件)

$ git commit --amend [file1] [file2] ...

PS:可以使用git log查看版本提交记录。每提交一个新版本,实际上Git就会把它们自动串成一条时间线。这条命令可以更清楚地看到提交历史的时间线。

commit id(版本号)是使用SHA-1算法产生唯一标识符,保证全球唯一。

小节

  • git config(使用git命令之前,如何配置用户信息?)
  • git help config(如何使用帮助)
  • git init (git 初始化,创建版本库)
  • git status (如何查看git管理的状态)
  • git add (如何跟踪文件)
  • git commit ( 如何提交到版本库中?)
  • git log (如何查看提交记录)

工作区、暂存区的概念

来看下面这张图:

img2016110601

  • untracked:没有被跟踪(即未被add)
  • 工作区(Workspace)

就是我们进行工作的地方。

  • 暂存区(Working Directory / Index / Stage)

暂存(index),又名暂存区(staging erea)。位于文件夹/.git/index下。

暂存区是可以设置哪些变更要提交到版本库,哪些先不提交。

  • 本地仓库(Local Repository)

本地仓库,就是我们自己工作的电脑上保存版本数据的地方。位于文件夹/.git/object下。

  • 远程仓库(Remote Repository)

远程仓库,我们用Git进行操作,为了防止数据在自己电脑上丢失,比如错误删除,病毒攻击等原因造成了数据丢失,我们需要备份到远程的服务器上,这个服务器可以理解为远程仓库。

版本会退

撤销未add的修改

# 恢复暂存区的指定文件到工作区$ git checkout [file]# 恢复某个commit的指定文件到暂存区和工作区$ git checkout [commit] [file]# 恢复暂存区的所有文件到工作区$ git checkout .# 重置暂存区的指定文件,与上一次commit保持一致,但工作区不变$ git reset [file]# 重置暂存区与工作区,与上一次commit保持一致$ git reset --hard# 重置当前分支的指针为指定commit,同时重置暂存区,但工作区不变$ git reset [commit]# 重置当前分支的HEAD为指定commit,同时重置暂存区和工作区,与指定commit一致$ git reset --hard [commit]# 重置当前HEAD为指定commit,但保持暂存区和工作区不变$ git reset --keep [commit]# 新建一个commit,用来撤销指定commit# 后者的所有变化都将被前者抵消,并且应用到当前分支$ git revert [commit]# 暂时将未提交的变化移除,稍后再移入$ git stash$ git stash pop

常见问题

修改commit message

命令如下:

git commit --amend -m "feat(拼购商详):接入猜你喜欢 20180605"

参考链接:#

强制push,覆盖远程版本

命令如下:

git push origin master -f

参考链接:#

git 忽略已经被提交的文件

声明: git的.gitignore文件不能直接忽略已经在版本库同步了的文件,只能控制本地忽略(不同步)某个文件。

如果想在本地忽略某个文件的话,执行如下命令:

git update-index --assume-unchanged 

如果想重新同步这个文件的话,执行如下命令:

git update-index --no-assume-unchanged 

参考链接:

  • git忽略已经被提交的文件
  • git忽略已经被提交的文件

进行文件改动后,未commit,然后切换分支

推荐你用git stash暂存起来,切换回来的时候用git stash apply重新获取刚才的变更。切换的时候给你一个干净的工作目录。

有几种选择:

  • (1)add并且commit,再checkout到另外一个分支,提交到当前分支。
  • (2)add但不commit,可以stash,再checkout到另外一个分支,然后再checkout回来之后stash apply,再commit,提交到当前分支。
  • (3)add但不commit,也不stash,直接checkout,然后再commit的话,记录就在切换分支下面。

其背后的原因:一个本地的git repo只有一个工作区和暂存区,但是有多个分支的提交区,而我们的checkout只是将HEAD指针从一个分支切换到另一个分支。

参考链接:#

弹出提示:Another git process seems to be running in this repository

解决办法:try deleting .lock file in your .git directory.

Generally such problems occurs when you execute two git commands simultaneously maybe one from command prompt and one from IDE.

其他

参考书籍

  • 《Git权威指南》
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值