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"