git常用命令

git remote -v #获取远程仓库网址信息
git remote add test git@github.com:nodejsnewbie/fzdh.git

remove a remote repository

git remote rm origin

or create a new repository on the command line

echo "# test" >> README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin git@github.com:nodejsnewbie/test.gitgit push -u origin master

or push an existing repository from the command line

git remote add origin git@github.com:nodejsnewbie/test.git
git push -u origin master

Command line instructions

Git global setup

git config --global user.name "fengze"
git config --global user.email "1206215@qq.com"

Create a new repository

git clone https://gitlab.com/fengzejituan/fzdhwebsite.git
cd fzdhwebsite
touch README.md
git add README.md
git commit -m "add README"
git push -u origin master

Existing folder

cd existing_folder
git init
git remote add origin https://gitlab.com/fengzejituan/fzdhwebsite.git
git add .
git commit
git push -u origin master

Existing Git repository

cd existing_repo
git remote add origin https://gitlab.com/fengzejituan/fzdhwebsite.git
git push -u origin --all
git push -u origin --tags

repo目录下的.git/config,果然,我的url是HTTPS形式。
[remote "origin"] fetch = + refs/heads/:refs/remotes/origin/ url = https://username@github.com/username/projectname.git**

因为远程版本库的url是HTTPS,估计是我git clone的时候用HTTPS链接造成的
所以问题就出在这了,每次都很不方便,都要输入用户名和密码。
为了使用SSH公钥的方式认证,我把config的url改成下面这样
[remote "origin"] fetch = + refs/heads/:refs/remotes/origin/ url = git@github.com:username/projectname.git**

这样我git push的时候又可以用SSH公钥认证而不用去输入用户名和密码,不仅方便,而且更安全。

允许推送无关历史代码
--allow-unrelated-histories
.gitignore只能忽略那些原来没有被 track 的文件,如果某些文件已经被纳入了版本管理中,则修改 .gitignore 是无效的。
解决方法是先把本地缓存删除,然后再提交。

git rm -r --cached .
git add .
git commit -m 'We really don't want Git to track this anymore!'

.gitignore 的匹配规则:

.a # 忽略所有 .a 结尾的文件
!lib.a # 但 lib.a 除外
/TODO # 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO
build/ # 忽略 build/ 目录下的所有文件
doc/.txt # 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt

查看某个文件的历史修改

git blame golfMaster/Menu/GMWebViewController.m
git log --pretty=oneline golfMaster/Menu/GMWebViewController.m #会查看所有关于此文件的commit
git show #看某次commit的更改。

让单个文件回退到指定的版本

git log MainActivity.java git reset a4e215234aa4927c85693dca7b68e9976948a35e MainActivity.java
git commit -m "revert old file " git checkout MainActivity.java #更新到工作目录

解决gitignore不生效的问题
git rm -r --cached .
git add .
git commit -m "update"

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 初始化配置 #配置使用git仓库的人员姓名 git config --global user.name "Your...
    贱精先玍丶阅读 355评论 0 0
  • 我的常用: ===================================** 撤销工作修改:**1、gi...
    ddai_Q阅读 763评论 0 5
  • Git 是一个很强大的分布式版本控制系统。它不但适用于管理大型开源软件的源代码,管理私人的文档和源代码也有很多优势...
    庞哈哈哈12138阅读 356评论 0 3
  • python大大的图 format()——格式化函数 正如注释中说的,位置和参数可以任意结合 line4中把0和1...
    TianAff阅读 254评论 1 1
  • 16年家庭聚餐之“比较”小烦恼 事情的开始从每年的12月31日家庭聚餐说起,16年的家庭聚餐如期而至,不过这...
    简几阅读 362评论 4 6