git init git status vi aspiring.txt git add aspiring.txt git commit -m 'aspiring' git log git log --pretty=oneline git reset --hard HEAD^ git reset --hard 0dff30fbca317febc42f1c4c38a77bb3726fefc6 git reflog git reset --hard 1228293 pwd ssh-keygen -t rsa -C "[email protected]" ssh -T [email protected] git remote add origin https://github.com/j415/aspiring.git git pull --rebase origin master git push origin master git clone [email protected]:j415/aspiring.git ls -a cat aspiring.txt touch .gitignore git branch jhc git branch git checkout jhc git checkout -b dyf git merge dyf git push --set-upstream origin dyf git tag v1.0 git tag 標籤名 commitID 指定commit id打標籤 git tag -d 標籤名 刪除標籤 git push origin v1.0 推送標籤到遠程 git push origin --tags 一次性推送全部尚未推送到遠程的本地標籤 刪除已經推送到遠程的標籤 先從本地刪除 git tag -d 標籤名 再從遠程刪除 git push origin :refs/tags/標籤名
$ git config --global user.name "Your Name"
$ git config --global user.email "[email protected]"
$ mkdir learngit
$ cd learngit
$ pwd
$ git init
$ touch readme.txt
$ git add readme.txt
$ git commit -m "wrote a readme file"
$ git add file1.txt
$ git add file2.txt file3.txt
$ git commit -m "add 3 files."
$ git status
$ git diff readme.txt
$ git log
$ git log --pretty=oneline
$ git reset --hard HEAD^
$ cat readme.txt
$ git reset --hard 1094a
$ git reflog
$ git checkout -- readme.txt
$ git reset HEAD readme.txt
$ git checkout -- readme.txt
$ rm test.txt
$ git rm test.txt
$ git push origin <branch-name>
$ git clone [email protected]:michaelliao/gitskills.git
查看分支:git branch
創建分支:git branch <name>
切換分支:git checkout <name>
創建+切換分支:git checkout -b <name>
合併某分支到當前分支:git merge <name>
刪除分支:git branch -d <name>
$ git checkout -b feature1
$ git merge feature1
$ git log --graph --pretty=oneline --abbrev-commit
$ git merge --no-ff -m "merge with no-ff" dev
$ git stash
$ git stash list
$ git stash pop
$ git stash apply stash@{0}
$ git branch -D <name>
$ git remote
$ git remote -v
$ git checkout -b dev origin/dev
$ git pull
$ git branch --set-upstream-to <branch-name> origin/<branch-name>
查看遠程庫信息,使用git remote -v;
本地新建的分支如果不推送到遠程,對其他人就是不可見的;
從本地推送分支,使用git push origin branch-name,如果推送失敗,先用git pull抓取遠程的新提交;
在本地創建和遠程分支對應的分支,使用git checkout -b branch-name origin/branch-name,本地和遠程分支的名稱最好一致;
建立本地分支和遠程分支的關聯,使用git branch --set-upstream branch-name origin/branch-name;
從遠程抓取分支,使用git pull,如果有衝突,要先處理衝突。
命令git tag <tagname>用於新建一個標籤,默認爲HEAD,也可以指定一個commit id;
命令git tag -a <tagname> -m "blablabla..."可以指定標籤信息;
命令git tag可以查看所有標籤。
命令git push origin <tagname>可以推送一個本地標籤;
命令git push origin --tags可以推送全部未推送過的本地標籤;
命令git tag -d <tagname>可以刪除一個本地標籤;
命令git push origin :refs/tags/<tagname>可以刪除一個遠程標籤。
在GitHub上,可以任意Fork開源倉庫;
自己擁有Fork後的倉庫的讀寫權限;
可以推送pull request給官方倉庫來貢獻代碼。