Repozytorium Web Developera

Console tools & git

Console tools

Processes

Checking a PID of a process working on a TCP port (e.g. 9000)


lsof -i tcp:9000

Listing processes with a specific name (e.g. node)

ps aux lists processes, grep filters output.


ps aux | grep node

Killing a process with a specific PID (e.g. 3342)

The flag -9 means that the process won't get any notification what effects it can lose data.


kill -9 3342

Killing all processes with a specific name (e.g. node)


killall node

SASS

Converting a CSS file to a SASS file


sudo sass-convert --from css --to sass src/vendor/jquery-ui/themes/ui-lightness/theme.css > src/css/vendor/_jquery_ui_theme.sass

Git

Configuring git


$ git config --global user.name "<USERNAME>"
# example: git config --global user.name "Noman ur Rehman"

$ git config --global user.email "<EMAIL>"
# example: git config --global user.email "me@example.com"

$ git config --global push.default "simple"
# sets the simple push strategy which pushes
# from local branch(of the same name) to
# the remote branch(of the same name)

$ git config --global core.editor "<EDITOR_PATH>"
# example: git config --global core.editor "/Volumes/Media/Applications/Sublime\\ Text.app/Contents/SharedSupport/bin/subl"
Źródło

Deleting not committed files


git clean -i

Conflicts in git

Stackoverflow: How to resolve merge conflicts in Git?


# CONFIG FOR <<<<<<<
git config merge.conflictstyle diff3

# SEARCH FOR CONFLICTS
git diff --name-only --diff-filter=U
git grep '<<<<<<< HEAD'

# GUI FOR CONFLICTS
git mergetool

# SHOW THE CONFLICTS
git diff

History and visual git


# checking changes on file named filename
git blame <filename>

# checking two last comits
git log -p -2

Program gitk, tig (konsolowy) lub GitKraken.

Branch, merge i pobieranie zmian


# show branch
$ git branch

# switch to development branch
$ git checkout development

# create development branch locally and switch to it
$ git checkout -b development

# only create development branch locally
$ git branch -b development

# rename local branch
$ git branch -m development dev

# create remote branch named 'home-security-system'
# and push local branch 'motion-detector' to it
$ git push origin motion-detector:home-security-system

# SET UPSTREAM FOR LOCAL BRANCH 'home-security-system'
$ git branch --set-upstream-to=origin/home-security-system home-security-system
$ git branch -u origin/home-security-system home-security-system

# switches to master branch
$ git checkout master

# merges dev into master
$ git merge dev

# REBASE VS MERGE
# http://stackoverflow.com/questions/14894768/in-git-how-is-fetch-different-than-pull-and-how-is-merge-different-than-rebase

# ONLY DOWNLOAD CHANGES FROM REMOTE WITHOUT MERGING LOCALLY
# http://stackoverflow.com/questions/292357/$difference-between-git-pull-and-git-fetch
$ git fetch

# DOWNLOAD CHANGES FROM REMOTE WITH MERGING LOCALLY (DELETING LOCAL CHANGES)
# http://stackoverflow.com/questions/292357/difference-between-git-pull-and-git-fetch
$ git pull # but be sure to to add/commit/stash any work-in-progress first!
$ git fetch; git reset --hard origin/master # similar to git pull
Źródło

Przywracanie i resetowanie zmian

Wycofywanie dowolnego commita

git revert tworzy nowy commit, który jest przeciwieństwem oznaczonego danym SHA - wycofuje wszystkie zmiany, jakie były wprowadzone w danym commicie.


git revert <SHA>

Zmiana komentarza ostatniego commita

W przypadku popełnienia błędu w komentarzu do ostatniego commita, można go zmienić za pomocą poniższych komend, które po prostu wprowadzają dokładnie takie same zmiany jak dany commit.


git commit --amend
git commit --amend -m "Fixes bug #42"

Resetowanie commitów do dowolnego commita


git reset --hard <last good SHA>

Przywracanie zresetowanych commitów

Poniższa komenda służy do przywrócenia commitów, które zostały pominięte np. za pomocą git reset. Zapamiętuje tylko te stany, które są możliwe do przywrócenia.


git reflog
  • If you want to restore the project's history as it was at that moment in time use git reset --hard <SHA>
  • If you want to recreate one or more files in your working directory as they were at that moment in time, without altering history use git checkout <SHA> -- <filename>
  • If you want to replay exactly one of those commits into your repository use git cherry-pick <SHA>

Cofanie zmian na wybranym pliku

Poniższa komenda usuwa wszelkie zmiany na pliku filename od czasu ostatniego commita. Zmiany są bezpowrotnie utracone, ponieważ nie były wcześniej commitowane.


git checkout -- <filename>

Tagowanie


# lista tagow
$ git tag

# wyszukiwanie tagow
$ git tag -l 'v1.4.2.*'

# tworzenie taga z opisem
$ git tag -a v1.4 -m 'my version 1.4'

# pokazywanie szczegolow tagow
$ git show

# pushowanie tagow
$ git push origin v1.5
$ git push origin <TAGNAME>
$ git push origin --tags

// pullowanie tagow
$ git fetch --tags

// zmiana wersji na tag
git checkout tags/<TAGNAME>

Dodawanie repozytorium do istniejącego folderu


git init
git remote add origin <PATH_TO_REPO>
git fetch
git checkout -t origin/master

// pulls master from added remote
$ git pull <REPONAME> master
// example: git pull rebelidealist master
Źródło

Pushowanie projektu do innego repozytorium


git remote add origin <PATH/TO/REPO>
git push -u origin/master
Źródło