git常用命令
安装git
Debian系列
- 安装git
sudo apt-get install git
- 如果存在为解决依赖,使用
sudo apt-get -f install
来解决依赖问题完成安装。
openSUSE
-
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
-
yast2安装方式 1) 使用
sudo yast2
打开yast管理,如图所示:
2) 在里面搜索git及相关软件,回车选中,进行安装。
redhat系列
使用yum install git
进行git的安装。
other linux
- 使用
wget https://www.xxx.xxx/xxx/xxx.xx
下载git安装包。 - 使用
tar -jxvf xxx.bz2
解压。 - 使用
./config
进行安装前的配置。 - 使用
make
编译链接。 - 使用
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加密,需要首先配置。
- 创建github账号,在github上创建即可。
- 创建SSH Key
ssh-keygen -t rsa -C "example@example.com"
- 添加SSH公钥到github账号中,登陆后,Settings==>SSH and GPG keys==>New SSH key,title随便输入,下面输入~/.ssh/id_rsa.pub的内容,确定即可。
- 创建远程仓库,登陆后,New repository即可。
- 将本地仓库推送到远程仓库中。
git remote add origin https://github.com/Binresist/Notes.git
git push -u origin master
–master表示的是本地分支名,默认是mastergit push origin master
–后续本地提交不需要在家-u参数。
git从远程库开始
若在github上先创建了远程库,也可以使用git clone git@github.com:example/example.git
将远程库克隆到本地。