git 常用命令

git 配置:

.gitconfig

[user]

name = cpf099

email = cpf09@163.com

 

[color]

ui = true

 

[alias]

lg = log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit

l = log --pretty=oneline

ll = log --graph --pretty=oneline --abbrev-commit

 

[receive]

denyCurrentBranch = ignore

 

[credential]

helper = store

[core]

fileMode = false

 

Git常用操作命令收集:

1) 远程仓库相关命令

检出仓库 :  git clone git://github.com/jquery/jquery.git

查看远程仓库: git remote -v

添加远程仓库: git remote add [name] [url]

删除远程仓库: git remote rm [name]

修改远程仓库: git remote set-url --push[name][newUrl]

拉取远程仓库: git pull [remoteName] [localBranchName]

推送远程仓库: git push [remoteName] [localBranchName]

创建空仓库 : sudo git init --bare sample.git

 

创建远程分支(本地分支push到远程): git push origin [name]

删除远程分支: git push origin :heads/[name] 远程仓库是空的,加上-u,git push -u

我从master分支创建了一个issue5560分支,做了一些修改后,使用git push origin master提交,但是显示的结果却是'Everything up-to-date',发生问题的原因是git push origin master 在没有track远程分支的本地分支中默认提交的master分支,因为master分支默认指向了origin master 分支,这里要使用git push origin issue5560:master 就可以把issue5560推送到远程的master分支了。

    如果想把本地的某个分支test提交到远程仓库,并作为远程仓库的master分支,或者作为另外一个名叫test的分支,那么可以这么做。

 

提交本地test作为远程仓库origin的master分支: git push origin test:master   

提交本地test分支作为远程的test分支: git push origin test:test  远程自动创建test分支

删除远程分支test git push origin :test    提交到远程的test将被删除,但是本地还会保存的

 

2)分支(branch)操作相关命令

查看本地分支: git branch

查看远程分支: git branch -r

创建本地分支: git branch [name]  注:创建新分支后不会切换到新分支

创建新分支: git checkout --orphan name 在当前分支上创建一个新的空分支分支,如果不提交,是没有这个分支信息的

分支改名: git branch -m old_name new_name

切换分支: git checkout [name]

创建新分支并立即切换到新分支: git checkout -b [name]

删除分支: git branch -d [name] ---- -d选项只能删除已经参与了合并的分支,对于未有合并的分支是无法删除的。如果想强制删除一个分支,可以使用-D选项

合并分支: git merge [name] ----将名称为[name]的分支与当前分支合并

 

3)版本(tag)操作相关命令

查看版本: git tag

创建版本: git tag [name]

删除版本: git tag -d [name]

查看远程版本: git tag -r 不可用

创建远程版本(本地版本push到远程): git push origin [name]

删除远程版本: git push origin :refs/tags/[name]

 

4) 子模块(submodule)相关操作命令

添加子模块: git submodule add [url] [path]

如:$ git submodule add git://github.com/soberh/ui-libs.git src/main/webapp/ui-libs

初始化子模块: git submodule init  只在首次检出仓库时运行一次就行

更新子模块: git submodule update 每次更新,切换分支后都需运行

删除子模块:(分4步)

1)git rm --cached [path]

2) 编辑“.gitmodules”文件,将子模块的相关配置节点删除掉

3) 编辑“.git/config”文件,将子模块的相关配置节点删除掉

4) 手动删除子模块残留的目录

 

5)忽略一些文件、文件夹不提交

在仓库根目录下创建名称为“.gitignore”的文件,写入不需要的文件夹名或文件,每个元素占一行即可,如

target、bin、*.db

 

查看两个版本改动的文件: git diff 前一版本id 后一版本id --name-only

或者 git diff 前一版本id 后一版本id --stat

 

git打补丁

git专用的补丁: git format-patch

git format-patch -s 6f909ec(前一版本号)

或者使用

git format-patch HEAD^  <==最近的1次commit的patch

git format-patch HEAD^^  <==最近的2次commit的patch

git format-patch HEAD^^^  <==最近的3次commit的patch

git format-patch HEAD^^^^ <==最近的4次commit的patch

 

通用补丁: git diff 

git diff 6f909ec b2129b54  > 01.patch

前一版本号:6f909ec、后一版本号:b2129b54

检查补丁包: git apply --check 01.patch

应用补丁: git apply 01.patch

使用补丁: patch -p1 < 01.patch

如果修改代码的官方版本库不是Git管理的版本库,那么必须使用git diff生成的patch 

 

 git add \*

http://www.cnblogs.com/chaoguo1234/p/5323649.html

 

查看用于提交的暂存的修改文件 git diff --cached

 

git删除文件 git rm add2.txt

git查看未管理的文件(未版本控制) git clean -nf

git删除未管理的文件 git clean -f

删除未管理的目录 git clean -fd 

删除未管理的文件和目录 git clean -xfd

删除被管理的文件: git rm --cached filePath

删除被管理的文件夹: git rm -r -f --cached filePath

删除被管理的文件: git rm -r -n --cached file -n:加上这个参数,执行命令时,是不会删除任何文件,而是展示此命令要删除的文件列表预览。

 

撤销git add添加的文件(重新放回工作区) : git reset HEAD files

丢弃工作区修改: git checkout -- files

不再追踪文件权限修改: git config core.fileMode false

忽略已经被提交的文件: git rm --cached file 然后重新git commit

 

如果想要忽略某些文件,需要在产生这些文件之前加入.gitignore文件中,否则被纳入了版本管理中,就忽略不了

注意: .gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。

正确的做法是在每个clone下来的仓库中手动设置不要检查特定文件的更改情况。

忽略管理文件: git update-index --assume-unchanged PATH

取消忽略文件的设定: git update-index --no-assume-unchanged <files>

这种做法需要每个成员都执行上述的命令,一旦一个没有执行,并且拉取了他提交的代码就必须重新执行update-index

 

 

查看已经管理的文件: git ls-files

展示所有未被追踪的分支: git ls-files --others

展示所有被忽略的文件: git ls-files --others -i --exclude-standard git check-ignore * git status --ignored

 

列举所有的别名与配置: git config --list

设置git大小写敏感: git config --global core.ignorecase false

设置自动更正: git config --global help.autocorrect 1

查看当前仓库所有未打包的objects和硬盘占用: git count-objects --human-readable

查看历史提交记录: git reflog

删除reflog: git reflog expire --expire=now --all

从object数据库中删除所有不可达的object: git gc --prune=now --aggressive

切换到其他的分支,将已经修改的保存到stash git stash save -a file

查看stash列表: git stash list

恢复stash的改动 git stash pop

删除stash git stash drop stash_id

查看谁修改了file git blame filename

将修改合并到其他分支 git cherry-pick id1..id2

创建SSH KEY ssh-keygen -t rsa -C "cpf09@163.com"

将生成的公匙添加到~/.ssh/authorized_keys文件中即可

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值