常用命令行

git clone;
git pull origin branch;
vim....
git add ..
git commit -m ".."...
git push ==>直接推送到远程master分支
git push origin master:branch ==>(将本地master分支推送到远程branch分支)
git checkout <branch_name> 转换分支。
git branch ==>查看本地分支情况/git branch -a ==>查看所有分支(包括远程).

拉取空仓库代码,添加自己的代码

git clone http://10.10.6.166:82/spider/vip_caiji.git
cd vip_caiji
touch README.md
git add README.md
git commit -m "add README"
git push -u origin master

已存在的目录,提交到空仓库

git init
git remote add origin http://10.10.6.166:82/spider/vip_caiji.git
git add .
git commit -m "Initial commit"
git push -u origin master

已存在仓库 推送到远端

cd existing_repo
git remote add origin http://10.10.6.166:82/spider/vip_caiji.git
git push -u origin --all
git push -u origin --tags

git init到关联远程仓库

1.本地初始化git目录
git init
2.新建文件并且写入内容
touch a.txt
echo "new data" >> a.txt
3.添加到暂存区
git add .
git commit -m "a.txt"
4.添加远程仓库
git remote add origin https://gitee.com/jianan/learnGit.git
5.本地仓库也远程仓库关联
git branch --set-upstream-to=origin/master master
6.拉取远程仓库内容到本地
这时候用git pull会提示(毕竟本地和远程仓库没啥关系指针连接不起来的缘故吧):
fatal: refusing to merge unrelated histories
因此命令应该改为:
git pull origin master --allow-unrelated-histories  
7.将最新的内容推送到远程仓库
git push

Git提交空目录

git和 svn不同,仅仅跟踪文件的变动,不跟踪目录。所以,一个空目录,如果里面没有文件,即便 git add这个目录,另外在别处 check out 的时候,是没有这个空目录的。
一、目录是空的
这种情况下只需要在目录下创建.gitkeep文件,然后在项目的.gitignore中设置不忽略.gitkeep
.gitkeep 是一个约定俗成的文件名并不会带有特殊规则
二、目录中已经存在文件
那就需要首先在根目录中设置!.gitignore,然后在目标目录也创建一个.gitignore文件,并在文件中设置
*
!.gitignore

忽略文件

在git中如果想忽略掉某个文件,不让这个文件提交到版本库中,修改.gitignore 文件的方法(如无,则需自己手工建立此文件)
例如:

# 此为注释 – 将被 Git 忽略
*.a       # 忽略所有 .a 结尾的文件
!lib.a    # 但 lib.a 除外
/TODO     # 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO
build/    # 忽略 build/ 目录下的所有文件
doc/*.txt # 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt
.gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。
解决方法就是先把本地缓存删除(改变成未track状态),然后再提交:
git rm -r --cached .
git add .
git commit -m 'update .gitignore'

本地清除远端已经删除的分支

git remote show origin 查看远端分支状态
git remote prune origin 清除stable状态的分支