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