remark: 1:git init create a git res... use "git init" 2:(1)git add (2)git commit add file to the repository: (1)git add <file> (2)git commit 3:"git status" in order to get the stuation,use "git status" 4:"git diff" if the file has been modified,use "git diff" 5:回滚 "git reset --hard commit_id" we can use this command to go through the different version,and the head is to lead the current version. For example, "git reset --hard head^" refer to the last version. "git log" we can use this command to check the **submition** history/ "git log --pretty=oneline" the short type "git reflog" we can use this command to check the **command** history,in case you feel regret about the rolling back 6:暂存区和工作区的区别 当多个文件修改完成放入暂存区的时候,发现其中一个文件的代码有问题,这时候你可以用checkout单独将这个文件还原重改;如果你将这些文件一次性全部放进库里,等你发现有问题时就不能单独拿出一个文件了,只能版本回档,那时你就要重新修改所有文件的代码。 7:git同一文件必须要在add之后进行commit,否则就会出错 8:撤销修改 (1)git checkout --file 改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用此命令 (2)git reset HEAD file 不仅改乱了工作区的内容,而且还提交到了暂存区,想丢弃修改,分两步,第一:使用此命令,第二:回到(1) (3)已经提交到了版本库,想要撤销, *******************远程仓库*********************** 1:注册一个GitHub账号,就可以免费获得Git远程仓库。创建key 2:关联一个远程仓库,使用命令git remote add origin git@server-name:path/repo-name.git 3:关联后,使用命令git push -u origin master,第一次推送master的所有分支,此后,每次本地递交后,只要有必要,就可以使用命令git push origin master 4:从远程库克隆需要知道仓库的地址,然后使用git clone xxx 这样的命令就可以. ********************分支管理******************** 1:创建和合并分支 查看分支 git branch 创建分支 git branch <name> 切换分支 git checkout <name> 创建+切换分支 git checkout -b <name> 合并某分支到当前分支 git merge <name> 删除分支 git branch -d <name> 2:解决冲突 当git master和其他分支有冲突时,无法自动合并分支,先必须解决冲突。解决后再提交。 3:Fast forward下可能会在删除分支后,丢掉分支信息。如果强制禁用ff模式,git就会在merge时生成一个新的commit:git merge --no-ff -m "xxxx" dev 中的 --no-ff表示禁用 fast forward模式 4:bug分支 当当前工作还没提交时,有了bug,为了可以方便的解决bug,可以使用git stash来将当前现场储藏起来。可以使用git stash list来查看stash号码,用git stash apply(stash不删除)或者git stash pop(删除)来进行恢复。 5:feature分支 当实验一个新特性时,最好添加一个新的feature分支,在上面开发,修改,完成后再进行删除。 使用git branch -D xxxx进行删除 6:多人协作 查看远程仓库----- git remote -v 从本地推送分支---- git push origin branch-name,如果推送失败,先用git pull抓取新的远程的提交 在本地创建和远程分支对应的分支,使用 git checkout -b branch-name origin/branch,本地和远程的名字最好一样 建立本地和远程的分支的关联,使用git branch --set-upstream branch-name origin/branch-name 从远程抓取分支,使用git pull,如果有冲突,则先处理冲突 ********************标签管理******************* 发布一个版本时,我们通常先在版本库中打一个标签,将来无论什么时候,取某个标签的版本,就是把那个打标签的时刻的历史版本取出来。所以,标签也是版本库的一个快照。 1:创建标签 git tag <name>用于新建一个标签,默认为HEAD,也可以指定一个commit id git tag 可以查看所有标签 git tag -a <tagname> -m "blabla" 可以指定标签信息 git tag -s <tagname> -m "blabla" 可以用PGP签名标签 2:操作标签 git push origin <tagname> 可以推送一个本地标签 git push origin tags 可以推送所有本地标签 git tag -d <tagname> 可以删除一个本地标签 git push origin :refs/tags/<tagname> 可以删除一个远程标签 *******************使用github******************** 在GitHub上,可以任意Fork开源仓库(点“Fork”就在自己的账号下克隆了一个bootstrap仓库,然后,从自己的账号下clone) 自己拥有Fork后的仓库的读写权限; 可以推送pull request给官方仓库来贡献代码(如果你希望bootstrap的官方库能接受你的修改,你就可以在GitHub上发起一个pull request) *******************自定义git******************** 1:颜色 git config --global color.ui true 使git拥有醒目的颜色 2:.gitignore 忽略某些文件时,需要编写.gitignore; .gitignore文件本身要放到版本库里,并且可以对.gitignore做版本管理!