git命令大全

目录

一、基础命令

二、进阶命令

三、git合并:

四、git如何忽略文件或者文件夹:

五、sourcetree、git中遇到的问题:

sourcetree未检测出jar包

soucetree未检测出大小写改变:

六、git 将本地代码(第三方库)关联的远端仓库:

七、gitignore文件中忽略项不起作用的解决方法


 

一、基础命令

git init    :初始化仓库   

git clone url  :从远端克隆   git  clone  <版本库的网址>   <本地目录名(选填)>    exp:git clone ssh:git@dfdf.re/s/re/test   

git add :添加文件       git  add  a/b/c/file.txt

git commit :提交代码   git  commit  -m  '代码提交信息'      exp:git commit -m ‘添加一个名为file的文件’

git status :查看状态  (显示你是否add和commit,可查看那些文件提交)

git push origin<branch> 推送到远端仓库  git push origin 远端分支名:本地分支民

git branch -a 查看所有分支

git branch -d  删除分支   git branch-d  分支名

git checkout 切换分支   git checkout -b zj_test  :创建分支zj_test并切换到该分支

git diff <file> 查看代码修改内容

git stash:将修改后的代码存入缓存

git stash pop : 将缓存的代码弹出(保持原来的状态)

git stash apply stash@{1} 

git rm :删除暂存区

git pull:拉取远端分支到本地

git fetch: 从远端获取最新版本,不合并

git remote :列出远端所有主机

git remote -v :查看远端主机网址,查看远端仓库地址

git config -l :查看姓名+邮箱等信息

git log:查看日志

git branch -m oldbranchname newbranchname :修改本地分支名称

如果修改远程分支,只需要将本地分支重命名为新分支名称,然后删除远端分支,再把本地分支上传即可

二、进阶命令

git pull origin master:localbranchname

git pull = git fetch + git merge

git pull --rebase : 采用rebase方式合并

git reset --hard <hash> : 重置分支commit值,重置暂存区,重置工作区,hash值为4位即可

git branch -vv : 查看本地分支所跟踪的远端分支

git branch -help : 查看帮助文档

git commit --amend -m '修改最新的提交说明' : 修改最新的提交说明

git config --global alias.st status : 给git status修改别名为git st

cat .git/config : 查看我们克隆的url地址

git  remote set-url origin ssh://git@*********************.git

1.      git 打补丁:

git add file.java

git  commit  -m   '将文件名为file的java文件打成补丁'

git  format-patch  -1

则在当前工作目录中创建.patch文件

2.      将本地项目推送到远端git仓库
git init 本地项目
git add .
git commit -m ‘推送本地项目到远端git仓库’
git remote add origin 远端仓库地址
git push -u origin master

eg:

 git remote add origin git@github.com:GitHub42096/newproject.git

git push -u origin master

3.   取消本地目录下关联的远程库:

git remote remove origin

重点*****4. 拉取远端仓库到本地未绑定的分支:

出错:

当前分支没有跟踪信息。
请指定您要合并哪一个分支。
详见 git-pull(1)。
git pull <远程> <分支>
如果您想要为此分支创建跟踪信息,您可以执行:
git branch --set-upstream-to=origin/<分支> zj_test

需使用如下命令:

git branch --set-upstream-to=origin/materzj_test

三、git合并:

1. git merge:

git merge <分支名> : 合并分支

若有冲突:HEAD指向当前分支,可直接对有冲突分支进行编辑修改。也可使用解决冲突版本:使用我的版本解决冲突(当前所分支)和使用他人版本解决冲突(合并的分支)。

最后:提交解决冲突信息

中止或重新启动合并
在合并提交执行最后的 git commit 命令前,使用如下命令:

git  reset  --hard  HEAD

2. git rebase

四、git如何忽略文件或者文件夹:

在仓库目录下新建一个名为.gitignore的文件(因为是点开头,没有文件名,没办法直接在windows目录下直接创建,必须通过右键Git Bash,按照linux的方式来新建.gitignore文件)。如下图所示。

.gitignore文件对其所在的目录及所在目录的全部子目录均有效。通过将.gitignore文件添加到仓库,其他开发者更新该文件到本地仓库,以共享同一套忽略规则。

http://www.thinksaas.cn/ueditor/php/upload/image/20141004/1412420380627966.jpg

http://www.thinksaas.cn/ueditor/php/upload/image/20141004/1412420381824981.jpg

然后就直接写要忽略的文件或者文件夹,例如忽略到cache目录

/cache

这样即可

具体使用请看 man gitignore

在项目根目录下面 添加 .gitignore文件

文件中每一行表示需要忽略的文件的正则表达式。

.gitignore文件过滤有两种模式,开放模式和保守模式

1. 开放模式负责设置过滤哪些文件和文件夹

例如: /target/ 表示项目根目录下的target文件夹里面所有的内容都会被过滤,不被GIT 跟踪

.classpath 表示项目根目录下的.classpath文件会被过滤,不被GIT跟踪

2. 保守模式负责设置哪些文件不被过滤,也就是哪些文件要被跟踪。

例如:

!/target/*.h 表示target文件夹目录下所有的.h文件将被跟踪

如果你不清楚GIT会跟踪哪些文件,你可以先用git status命令查看一下

C代码   ​

  1. $git status  
  2. # On branch master  
  3. # Untracked files:  
  4. #   (use "git add <file>..." to include in what will be committed)  
  5. #  
  6. #    .metadata/  
  7. #    gitignore  

 像这样的话,就是.metadata文件夹和gitignore被跟踪。

另外别忘记了在.gitignore文件中加入一行.gitignore,否则的话.gitignore将会被传到GIT服务器上

五、sourcetree、git中遇到的问题:

git文件内容没变但status显示修改了很多文件:

(该问题参考:https://blog.csdn.net/u012109105/article/details/51252242)

用git diff 查看文件的不同,显示如下效果:

这里提示的不同,是文件的权限改变了。

解决方案:不让git检测文件权限的区别

使用命令:git config core.filemode false

sourcetree未检测出jar包

解决:设置------>高级----->编辑------->把.ignore文件中忽略jar的删除后保存即可

soucetree未检测出大小写改变:

解决:git config core.ignorecase false

六、git 将本地代码(第三方库)关联的远端仓库:

新建远端仓库并创建初始化文件(readme.md)

1. 添加远端仓库地址

2. 使用git fetch

3. 使用git pull

报错:refusing to merge unrelated histories  参考:https://blog.csdn.net/u012145252/article/details/80628451

则使用命令    git pull origin master --allow-unrelated-histories

4. git push

推送全部分支到远程仓库:

git push --all origin -u

七、gitignore文件中忽略项不起作用的解决方法

参考:https://blog.csdn.net/zero__007/article/details/106333059

原因:新建的文件在git中会有缓存,如果某些文件已经被纳入了版本管理中,就算是在.gitignore中已经声明了忽略路径也是不起作用的,这时候我们就应该先把本地缓存删除,然后再进行git的push,这样就不会出现忽略的文件了。git清除本地缓存命令如下:

git rm -r --cached .

git add .

git commit -m 'update .gitignore'

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值