git常用操作

GIT暂存

git stash //添加追踪文件已暂存区,不包括未追踪和忽略文件
git stash save "message" //推荐写上message
git pop //从堆栈中取最近一次暂存,并且删除暂存
git stash apply //同上,但并不删除暂存数据
git stash apply stash@{0} //同上,可指定恢复其它暂存
git stash list //查看所有暂存
git stash drop stash@{0} //删除指定暂存
git stash clear //清空所有暂存
git stash show //查看diff,同git stash show stash@{0}
git stash show -p //查看详细diff,同git stash show stash@{0} -p
git stash branch newBranch //暂存变分支
git stash -u //暂存untracked文件
git stash -a //暂存所有文件

GIT 分支

git branch -a #查看所有分支
git branch -m old_name new_name #重命名本地分支
git push origin :old_branch #删除远程分支
git push origin new_branch #将本地新分支推送至远程
git checkout -b new_br #创建并切换至分支new_br
git checkout master #切换至master分支
git merge new_br #将new_br分支合并至当前master分支
git branch -d new_br #将合并完成后不用的分支删除
git mergetool #合并冲突时可用的工具
git add #冲突解决后提交
git push origin :serverfix #删除远程分支
git rebase master myfix #将myfix分支在master分支上重演,相当于清除了myfix分支以前的提交历史,所以不能在已发布对象上操作,以防止别人依赖这个分支。

GIT打标签

git tag -a v1.0 -m 'base function finished.'
git tag -a v1.2 9fceb02 //给以往版本加上标签
git tag //查看已有标签
git show v1.0 //查看v1.0信息
git push origin v1.0 //推送本地标签至远端
git push origin --tags //推送本地所有标签至远端

取消某文件的追踪

git rm --cached readme.txt  删除指定文件的跟踪,保留本地文件。
git rm --f readme.txt     删除指定文件的跟踪,并且删除本地文件。

彻底删除历史提交记录的方法

git log 查看要回退到哪个版本,记下code:712ec235d471d7c3ae3d397dbd254063151e5bd9
git reset --hard 712ec235d471d7c3ae3d397dbd254063151e5bd9
git push origin HEAD --force

GIT EXPORT导出文件方法

git archive --format zip -o site-$(git log --pretty=format:"%h" -1).zip HEAD

只CLONE部分文件夹的方法

# 初始化空库
mkdir devops
cd devops/
git init #初始化空库
# 拉取remote的all objects信息
git remote add -f origin https://gitee.com/user/myPython.git
# 开启sparse clone并设置需要pull的目录 devlops
git config core.sparsecheckout true #开启sparse clone
echo "devops" >> .git/info/sparse-checkout #设置需要pull的目录,*表示所有,!表示匹配相反的
more .git/info/sparse-checkout
# 将origin 端,由第三步(文件 .git/info/sparse-checkout)设置的目录下的文件pull到本地
git pull origin master
git branch --set-upstream-to=origin/master master

//问题提示:SSL certificate problem: self signed certificate
git config --global http.sslVerify false

GIT初始化:

SSH-KEY(4096长度):
ssh-keygen -t rsa -C "user@163.com" -b 4096
cat ~/.ssh/id_rsa.pub

Git 全局设置

git config --global user.name "xxx"
git config --global user.email "user@163.com"
get config --list

GIT拉取

创建新版本库

git clone https://github.com/user/myRepo.git
cd testRepo
touch README.md
git add README.md
git commit -m "add README"
git push -u origin master

已存在的文件夹

cd existing_folder
git init
git remote add origin https://gitee.com/user/myPython.git
git add .
git commit -m "Initial commit"
git push -u origin master

已存在的 Git 版本库

cd existing_repo
git remote rename origin old-origin
git remote add origin https://github.com/user/myRepo.git
git push -u origin --all
git push -u origin --tags 

设置GIT push时免密:

Linux:

vim ~/.git-credentials
https://{username}:{password}@gitee.com
git config --global credential.helper store
打开~/.gitconfig文件,会发现多了一项,然后再PULL输入一次以后就用输入了:

[credential]
helper = store 

Windows:

方法同上面,只是第一步创建git-credentials有点不同。在%HOME%目录中,一般为C:usersAdministrator,也可以是你自己创建的系统用户名目录,
反正都在C:users中。文件名为.git-credentials,由于在Window中不允许直接创建以"."开头的文件,所以需要借助git bash进行,打开git bash客户端,
进行%HOME%目录,然后用touch创建文件 .git-credentials, 然后后面的操作同上面。

设置别名

git config --global -e
#写入如下内容:
[alias]
    st = status
    co = checkout
    br = branch
    mg = merge
    ci = commit 
    md = commit --amend
    dt = difftool
    mt = mergetool
    last = log -1 HEAD
    cf = config
    line = log --oneline
    latest = for-each-ref --sort=-committerdate --format='%(committerdate:short) %(refname:short) [%(committername)]'

    ls = log --pretty=format:"%C(yellow)%h %C(blue)%ad %C(red)%d %C(reset)%s %C(green)[%cn]" --decorate --date=short
    hist = log --pretty=format:"%C(yellow)%h %C(red)%d %C(reset)%s %C(green)[%an] %C(blue)%ad" --topo-order --graph --date=short
    type = cat-file -t
    dump = cat-file -p
原文地址:https://www.cnblogs.com/liehen2046/p/11080898.html