理解
跟踪定义:
初次克隆某个仓库的时候,工作目录中的所有文件都属于已跟踪文件,并处于未修改状态。
编辑过某些文件之后,由于自上次提交后你对它们做了修改,Git 将它们标记为已修改文件。
必须先将他们的工作拉取(pull)下来并将其合并进你的工作后才能推送
Git 保存的不是文件的变化或者差异,而是一系列不同时刻的文件快照。
当 git fetch 命令从服务器上抓取本地没有的数据时,它并不会修改工作目录中的内容。 它只会获取数据然后让你自己合并。
命令:
修改用户信息
$ git config --global user.name “John Doe”
$ git config --global user.email johndoe@example.com
检查配置信息
$ git config --list
user.name=John Doe
user.email=johndoe@example.com
color.status=auto
color.branch=auto
color.interactive=auto
color.diff=auto
获取config命令的手册
git help config
克隆项目
git clone https://github.com/libgit2/libgit2
检查当前文件状态
$ git status
On branch master
nothing to commit, working directory clean
跟踪新文件(一般用不到)
$ git add README
忽略文件
$ cat .gitignore
*.[oa]
*~
创建一个名为 .gitignore 的文件,列出要忽略的文件模式。第一行告诉 Git 忽略所有以 .o 或 .a 结尾的文件。一般这类对象文件和存档文件都是编译过程中出现的。 第二行告诉 Git 忽略所有以波浪符(~)结尾的文件
查看已暂存和未暂存的修改(在sourceTree上用)
git diff
添加当前所有目录到暂存区
$ git add .
提交更新(在sourceTree上用)
git commit -m [message]
拉取远程分支的变化
git pull origin test
重新提交(用不到)
$ git commit --amend
情况适用于提交完了才发现漏掉了几个文件没有添加,或者提交信息写错了。
撤消之前所做的修改
$ git checkout – CONTRIBUTING.md
查看远程仓库
git remote
从最初克隆的服务器上抓取数据并自动尝试合并到当前所在的分支。
git pull
推送到远程仓库
$ git push origin master
远程仓库的移除与重命名
$ git remote rename pb paul
$ git remote rm paul
合并提交
git rebase -i HEAD~3
改为
pick 3ca6ec3 ‘注释**********’
s 1b40566 ‘注释*********’
s 53f244a ‘注释**********’
切换分支
git checkout childy
切换到某新的分支
git checkout -b test;
切换到某远程分支并添加分支名
git checkout -b test remotes/origin/test;
把某个分支的内容合并到当前分支
git rebase master(假设当前在childy分支,合并后childy分支的内容就和master分支一样了)
git merge dev
返回某一提交
git log(查看各个分支的提交)
然后输入命令
git reset --hard edc30e1bd5cbe6a578f2d04fa05ee8cd2f4c6b04
hard后面的字符串为commit的名字
强制推送命令
git push -f origin develop(最好改个readme某地方,再提交一次,保证推到最新分支,后面的人拉下来就没什么问题)
如果没有暂存文件就切换分支的话,切换前的分支和切换后的分支是一模一样的
忽略所有的暂存文件
git checkout .
解决服务器上因代码不同步造成无法拉取的问题
git reset --hard edc30e1bd5cbe6a578f2d04fa05ee8cd2f4c6b04git 回退到某个版本
修改readme.md文件某个地方,然后提交代码
git push -f origin develop 强制推送
git忽略文件
已暂存的文件再忽略不会生效
生成ssh密钥
cd ~/.ssh/
ssh-keygen -t rsa -C “你的公司或个人邮箱”
git忽略已经被跟踪的文件,此时gitignore已经失效了
git rm -r --cached .
git add .
git commit -m ‘update .gitignore’
忽略文件写法
**/target/** 忽略包含target目录的所有文件
git查看本地与远程分支
git branch -a
git删除某本地分支
先切换到其他分支再删除
git删除用户信息
git取消暂存的文件
git reset head [文件名]
删除错误的保存密码
git config --system --unset credential.helper
取消每次都要输入密码的功能
git config --global credential.helper store
git删除远程分支
git push origin --delete Chapater6
git 下载文件超时
git config --global http.postBuffer 524288000
git config --global http.lowSpeedLimit 0
git config --global http.lowSpeedTime 999999
svn部署使用
https://www.cnblogs.com/jingmoxukong/p/10335174.html