1. git add . 只是追踪当前的状态,如果修改文件还需要再执行一下git add .
2. git 中需要忽略的文件都在 .gitignore文件中
文件 .gitignore 的格式规范如下:
(1)所有空行或者以注释符号 # 开头的行都会被 Git 忽略。
(2)可以使用标准的 glob 模式匹配。
(3)匹配模式最后跟反斜杠(/)说明要忽略的是目录。
(4)要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(!)取反。
3. 当git add . 之后通过git diff可以查看文件的变动情况,也可以通过git diff -cache查看已经暂存起来的变化
4. 每次执行git commit 之前得执行一下git status 可以查看所有边修改过的文件是否已经暂存起来
5. git log 查看提交的历史
git log -p -2 (-p是显示文件每次提交的内容的差异,-2是显示最近两次的更新)
git log --stat 查看显示简要的行数统计
6. git add .之后取消暂存:
1. git status
2. git reset HEAD filename(test.txt)
3. git status
7. 修改提交说明:
git commit --amend
英文输入状态下按i,进入编辑模式下,在第一行修改提交文件的commit信息
如果刚才提交时忘了暂存某些修改,可以先补上暂存操作,然后再运行 –amend 提交:
(1) git commit -m 'initial commit'
(2) git add forgotten_file
(3) git commit --amend
8. 查看当前的远程仓库:
git remote
git remote -v (-v显示对应的克隆地址)
9. 用命令添加远程仓库
git remote add pb git://github.com/paulboone/ticgit.git
git remote -v
10. 从远程仓库抓取数据
git fetch [remote-name]
git fetch[pb/master] pb远程仓库名
git fetch 只会抓取上次克隆以后,别人提交到远程仓库的左右更新,
fetch知识简单地拉取到本地, 不自动合并,需要手动合并
11. 查看远程仓库的详细信息:
git remote show [remote-name] 查看某个远程仓库的详细信息
git remote show origin
12. 远程仓库的删除和重命名:
git remote rename pb paul
git remote 查看仓库
git remote rm paul 删除名为paul的远程仓库
13. 创建分支:
git checkout -b test
这样就相当于执行了下面的两步操作:
(1) git branch test
(2) git checkout test
14. (1) 查看分支信息:git branch -v
(2) 查看尚未合并的工作:git branch --no-merged
15 合并分支:
git merge master
衍合:
git checkout experiment
git rebase master
将test分支的变化包含到master分支: git rebase master server
一旦分支中的提交对象发布到公共仓库,就千万不要对该分支进行衍合操作。
16. 提现最后一次提交:
git log
git show ca82a6dff817ec66f44342007202690a93763949 == git show topic1
17. 在一些文件上进行工作,有可能还暂存其中一个变更, 如果你运行 git status,
你可以看到你的中间状态用git stash 可以将其暂存起来, 查看现有的储藏 git stash list
查看储藏: git stash list
删除储藏: git stash drop stash@{2}
在这个案例中,之前已经进行了两次储藏,所以你可以访问到三个不同的储藏。
你可以重新应用你刚刚实施的储藏,所采用的命令就是之前在原始的 stash
命令的帮助输出里提示的::git stash apply。如果你想应用更早的储藏,你可以通过名字指定它,
像这样::git stash apply stash@{2}。如果你不指明,Git 默认使用最近的储藏并尝试应用它:
stash@{0}: WIP on test: 3417b46 upload_log.py文件无太大变动,已测试修改
stash@{1}: WIP on test: c1064dc 用pytest去测试transfer和executor
stash@{2}: WIP on master: 5ba8046 1
stash@{3}: WIP on master: 5ba8046 1
stash@{4}: WIP on test: dc245d5 test1
git stash show -p stash@{0} | git apply -R
同样的,如果你沒有指定具体的某个储藏,Git 会选择最近的储藏:
git stash show -p | git apply -R
你可能会想要新建一个別名,在你的 Git 里增加一个 stash-unapply 命令,这样更有效率。例如:
git config --global alias.stash-unapply '!git stash show -p | git apply -R'
git stash
git stash-unapply
18. git commit之后,想撤销commit
git reset --mixed HEAD~x (x代表之前的x次操作)
git reset --mixed HEAD^(^代表上一次操作)
--mixed
意思是:不删除工作空间改动代码,撤销commit,并且撤销git add . 操作
这个为默认参数,git reset --mixed HEAD^ 和 git reset HEAD^ 效果是一样的。
git reset --soft HEAD~x
--soft
不删除工作空间改动代码,撤销commit,不撤销git add .
git reset --hard HEAD~x
--hard
删除工作空间改动代码,撤销commit,撤销git add .
注意完成这个操作后,就恢复到了上一次的commit状态。
解决git每次拉项目都要输入账号和密码
git config --global credential.helper store
执行该命令会在gitconfig目录下生成一个文件,记录你的账号和密码,
当你再次执行时就不需要再输入账号和密码了
强制拉去远程分支
git fetch -all 不进行合并拉取远程分支代码
git reset --hard origin/dev 撤销本地、暂存区、版本库(用远程服务器
origin/master替换本地、暂存区、版本库)
git pull origin master 从远程仓库同步代码
一条命令执行git强制覆盖本地命令:
git fetch --all && git reset --hard origin/master && git pull
提交代码的时候显示别人的名称
1. git config --global -l (查看email和用户名是否是自己的)
user.email=xxx@xxx.com
user.name=admin
2. 设置用户名和邮箱
git config --global user.name "username"
git config --global user.email useremail@qq.com (无双引号)
3.查看用户名和邮箱
git config user.name
git config user.email
4.查看其他配置信息(git设置列表)
git config --list