GIT 常用命令整理

生成密钥

ssh-keygen
cat id_rsa.pub


git config --global user.name "Ricker"
git config --global user.email "3030879494@qq.com"

Centos升级Git版本

# ubuntu  zlib.h 需要执行 apt-get install zlib1g-dev libssl-dev -y
# ubuntu  expat.h 需要执行 apt-get install libexpat1-dev -y
# ubuntu  fatal error: openssl/ssl.h:   需要执行     sudo apt-get install libssl-dev
# ubuntu   fatal error: curl/curl.h:  需要执行    sudo apt-get install  libcurl4-openssl-dev

apt install -y curl-devel expat-devel gettext-devel openssl-devel zlib-devel asciidoc gcc perl-ExtUtils-MakeMaker
apt -y remove git  && cd /usr/local/src/
wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.39.0.tar.gz
tar -vxf git-2.39.0.tar.gz && cd git-2.39.0

make NO_CURL=1 NO_MSGFMT=YesPlease NO_TCLTK=YesPlease NO_GETTEXT=YesPlease prefix=/usr/local/git install

echo "export PATH=$PATH:/usr/local/git/bin" >> /etc/profile && source /etc/profile && git --version

本地项目内添加,暂存。

$ git add *.c
$ git add README
$ git commit -m 'initial project version'


git commit -a -m '这一行命令可以不add文件就把所有跟踪过的文件提交,这里是写备注的地方!'

创建密钥

ssh-keygen -t rsa -C "zjK@itomix.com.cn"

本地克隆一个项目

git clone  www.git.com

忽略文件

$ cat .gitignore
*.[oa]
*~
所有空行或者以注释符号 # 开头的行都会被 Git 忽略。
可以使用标准的 glob 模式匹配。
匹配模式最后跟反斜杠(/)说明要忽略的是目录。
要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(!)取反。

直接commit

Git commit -a -m'11'

忽略被追踪过的文件

git update-index --assume-unchanged 1.txt

git update-index --no-assume-unchanged  1.txt

本地创建一个分支并且链接到远程分支

$ git checkout -b develop origin/develop

删除版本库与项目目录中的文件

git rm index.php

只删除版本库中文件但保存项目目录中文件

git rm --cached index.php

GIT 修改文件名

git mv README.txt README 

等价于

mv README.txt README
git rm README.txt
git add README

查看git的提交历史信息


git log   显示提交历史

git log -p -2 查看最近2次的提交,只显示修改过的文件


用不同的展现方式展示提交历史,用到的时候再查百度吧
git log --pretty=【short、full 、fuller、oneline  】

后悔操作

如果上一次的提交的备注写错了   git commit --会修改上次的提交信息,具体是直接修改,还是新建一条完全相同的修改,这个自己试下。

如果还有文件没有提交的话,可以用以下命令
$ git commit -m 'initial commit'
$ git add forgotten_file
$ git commit --amend

取消暂存的文件

git reset HEAD 1.txt

放弃没有提交的修改

git checkout .

删除没有add 的文件和目录

git clean -fd

显示将要删除的文件或目录

git clean -n

本地一个仓库git,可以有多个远程git。

当前目录添加远程仓库

git remote add 自定义项目简称a git://github.com/prj/1.git
git remote add 自定义项目简称b git://github.com/prj/1.git
git remote add 自定义项目简称c git://github.com/prj/1.git
git fetch a
git fetch b
git fetch c  同理。

查看本地分支列表,*是当前分支

git branch

查看本地分支和远程分支的关系

git branch -vv

查看远程分支列表

git branch -a

查看远程仓库的信息

可以看到当前是哪个分支 远程是哪个分支 ,此命令挺有用的

git remote show origin

重命名远程仓库

git remote rename old_name new_name

删除远程仓库

git remote rename pb paul

删除远程分支

git push origin :develop

快进提交

git merge develop

标签部分待整理

git自定义命令

$ git config --global alias.co checkout
$ git config --global alias.br branch
$ git config --global alias.ci commit
$ git config --global alias.st status



$ git config --global alias.last 'log -1 HEAD'

等价于

$ git last

在主分支查看没有合并的其他分支的工作

git branch --no-merged

当分支上有未合并的工作时

git branch -d develop 会报错,因为没有合并到主分支
git branch -D develop  会强制删除分支,工作成果也就没有了。

查看某个文件改动了什么

git diff  1.txt

查看暂存区所有的变动

git diff --staged

查看当前目录所有的变动

git diff HEAD

修改最后一次提交的备注信息

git commit --amend

设置windows powershell中git的字符集

git config --global core.quotepath false
git config --global gui.encoding utf-8
git config --global i18n.commit.encoding utf-8
git config --global i18n.logoutputencoding utf-8

文件来源1:

https://git-reference.readthedocs.io/zh_CN/latest/Git-Basics/Working-with-Remotes/

文件来源2:

http://houdunren.gitee.io/note/git/git.html

results matching ""

    No results matching ""