git常用命令

安装git

Debian系列

  1. 安装git sudo apt-get install git
  2. 如果存在为解决依赖,使用sudo apt-get -f install来解决依赖问题完成安装。

openSUSE

  1. zypper安装方式 使用sudo zypper install git安装git。 注:若安装出现问题,可以从下面几个角度来确定问题。 1) 检查软件仓库和软件源 sudo zypper lr & suzo zypper ls,若存在问题,使用sudo zypper ar xxxx://xxxx.xx.xxx设置包含该软件的软件源。使用sudo zypper refresh来刷新该源。 2) 安装特定版本软件sudo zypper install packagename = version 3) 若已经安装,升级使用sudo zypper update packagename

  2. yast2安装方式 1) 使用sudo yast2打开yast管理,如图所示:

sudo_yast2

2) 在里面搜索git及相关软件,回车选中,进行安装。

yast2_git

redhat系列

使用yum install git进行git的安装。

other linux

  1. 使用wget https://www.xxx.xxx/xxx/xxx.xx下载git安装包。
  2. 使用tar -jxvf xxx.bz2解压。
  3. 使用./config进行安装前的配置。
  4. 使用make编译链接。
  5. 使用sudo make install安装。

Windows安装

这里下载软件,安装即可。

git个人信息配置

配置姓名

git config --global user.name "example"

配置email

git config --global user.email "example@example.com"

注:这里--global选项可以替换为--system--local表示配置的范围不同。 1) --system会将其配置到$(prefix)/etc/gitconfig中,该系统的所有用户共用。 2) --global会将其配置到~/.gitconfig中,该用户有效。 3) --local会配置到.git/config中,当前仓库有效。

配置其他信息

git能够配置的东西很多,可以执行git config --help查看,定制最适合自己的环境。

git在本地建仓库

在想要创建本地仓库的位置执行git init会进行初始化,可以是空文件夹,也可以是已经有内容的位置(此时并不会对已存在的内容进行跟踪)。

git添加跟踪文件

使用git add xxx会告诉git,xxx是你想要跟踪的文件,执行过后,该文件的内容会被添加到索引中,git会跟踪该文件的改变。 当然,git add .会将当前目录及其子目录中的文件添加跟踪。(在.gitignore中可以设置忽略的文件,可以是文件名,也可以是后缀等。)

git查看工作区状态

使用git init会创建一个空的仓库,这个仓库对应的实际位置,称之为工作区,包括这个文件夹和文件夹下的所有子文件夹内的文件。git status即用来查看该工作区的状态,这个命令会将该工作区内所有未被跟踪的文件列出,且会将发生修改的已跟踪文件列出。 使用git add xxx之后,该文件的内容便被添加到了索引中,此时修改该文件,索引中的内容并不会随之改变,也就是说,实际文件xxx和索引中的文件xxx’有差异,可以使用git status来查看本地文件与索引中的文件是否有差异。

git查看跟踪文件差异

进一步的,xxx文件在索引和实际文件之间的差异可以使用git diff xxx来查看,git diff用来查看索引中的所有文件与本地的差异。若想要进一步将本地实际文件的修改添加到索引中,继续使用git add xxx

git提交变更

使用git add xxx将要提交的修改都添加到了索引中,但实际上这些变更并未实际提交,也就是说,当别人得到了你本地的分支时,并不能看到这些修改,若想要将这些修改提交,使用git commit -m "xxxxx"将这些变更作出提交。其中xxxxx是为这一次提交作出的说明。

git查看提交历史

当多次使用git commit -m "xxxxx"进行提交后,若向回顾以下之前的提交记录,可以使用git log来查看之前的所有提交记录。

git回退某次提交

每次提交后的状态我们可以称之为一个版本,若本次提交过后,发现本次提交存在问题,可以使用git reset --hard HEAD^回退到上一个版本,也就是上一次提交后的状态,或者说本次提交前的状态。 若发现问题在更早的版本,例如,发现上次提交有问题,可以使用git reset --hard HEAD~2,即回退两次,回到上次提交前的状态。

注1:HEAD表示当前的状态。 注2:当版本回退之后,git log的输出也会相应改变,也就是说,若你提交了10个版本,此时使用git log可以看到10次提交,若回退到上个版本时,执行git log就只能看到上次提交前的9个提交了。

git前进到某次提交

当某次使用git reset --hard HEAD^回到本次提交前的状态后,突然想清楚了这次提交并没有问题,若还记得本次提交的id,可以使用git reset --hard commit_id来回到这次提交后的状态,若不记得,可以使用git reflog查看历史提交记录,找到对应的id后再执行git reset --hard commit_id

git撤销工作区修改

当某次git add xxx之后,若在工作区内xxx文件又发生了修改,在再次git add xxx之前发现这些修改并无必要,可以使用git checkout -- xxx来将这些修改取消。此时,工作区内的xxx文件内容就与索引中的一致了。

git撤销add修改

当某次工作区的修改已经被git add xxx记录之后,可以使用git reset HEAD xxx撤销该修改到上次commit之后的状态。

git删除版本库文件

使用git rm xxx可以将版本库中的xxx文件删除,删除也是修改操作,git会记录下来,可以使用git commit -m "xxxxx"提交。

git配置远程库

git本地库与github上的远程库通过SSH加密,需要首先配置。

  1. 创建github账号,在github上创建即可。
  2. 创建SSH Key ssh-keygen -t rsa -C "example@example.com"
  3. 添加SSH公钥到github账号中,登陆后,Settings==>SSH and GPG keys==>New SSH key,title随便输入,下面输入~/.ssh/id_rsa.pub的内容,确定即可。
  4. 创建远程仓库,登陆后,New repository即可。
  5. 将本地仓库推送到远程仓库中。 git remote add origin https://github.com/Binresist/Notes.git git push -u origin master –master表示的是本地分支名,默认是master git push origin master –后续本地提交不需要在家-u参数。

git从远程库开始

若在github上先创建了远程库,也可以使用git clone git@github.com:example/example.git将远程库克隆到本地。

Table of Contents