赞
踩
使用Git做代码管理,在使用的时候发现不管怎么修改.gitignore文件,比如针对__pycache__文件夹,为了让git忽略所有目录里的 __pycache__ 和 .pyc文件,
在gitignore中加入规则:**/__pycache__ 、 __pycache__ 、 __pycache__/ 等,但是在git status的时候依然发现还有这些目录下的这些文件。也有些朋友推荐在.git/info/exclude文件中添加 __pycache__/ 。但我在本地尝试了就是未成功。问题出在哪?
原来.gitignore中已经标明忽略的文件目录及文件和版本管理存在一个先后问题。因为在git中新增加的一些忽略目录或文件中,如果某些文件已经被纳入了版本管理中,就算是在.gitignore中已经声明了忽略路径也是不起作用的,除非是项目在一开始初始化的时候就加上了忽略。
而对于先已经加入了版本管理,后来再想着忽略的情况下,这时候我们就需要先把本地缓存删除后进行一次git提交,这样以后就不会出现忽略的目录和文件了。
git清除本地缓存(改变成未track状态),然后再提交:
- $ git rm -r --cached .
- # 可以看到此时 很多delete的文件,正是之前删除不了的忽略文件
- $ git status
- $ git add .
- $ git commit -m "ignore"
- $ git push
其它备注:Git使用git add 提交代码之后,想回到版本库的版本,我们现在分为两种情况:
使用git reset HEAD file 撤回提交。
使用git reset HEAD . 撤回所有提交。
使用git checkout -- filepath 撤销文件修改.
使用git checkout -- . 撤销所有修改.
如果要修改的文件未添加到暂存区,就是文件处于untracked状态,直接只走第2步就行。
装了git bash之后,我就再也不想使用CMD了,所有的本地命令都可以在git bash上执行,git bash的界面、字体默认都很美观,CMD那个难用啊。。。git bash除了在本地执行命令,操作git之外,还可以用来操作服务器,可以少装了一个secureCRT或者xshell了。
有两种方式通过git bash ssh命令来登录服务器
1.密码登录
ssh root@192.168.162.11 -l username
2.pem密钥登录
ssh -i key.pem root@192.168.162.11
在使用的时候发现基本的命令可以了,但是还有一个问题,就是上传和下载,平常依赖工具软件可以使用rz/sz命令,但是git bash里是不支持lszrz中的命令的。我们可以使用其它命令管理windows和linux两个系统之间传输文件,以前常用的是scp命令。不过由于scp已慢慢被放弃,替代它的是rsync命令,rsync是通过 SSH 在远程系统之间复制文件的下一个最佳工具,实际上,它在许多方面都比 scp 好,不过使用起来也没什么两样。
rsync命令语法与 scp 相同,必须使用旧版本的 rsync,rsync -e ssh但现在不再如此。
#scp/rsync 文件 用户名@服务器地址:远程目录
scp test.txt root@192.168.162.11:/local/path
rsync test.txt root@192.168.162.11:/local/path
#scp/rsync 用户名@服务器地址:远程目录/文件 /local/path
scp root@192.168.162.11:~/test.txt /local/path
rsync root@192.168.162.11:~/test.txt /local/path
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。